您的位置:首页 > 职场人生

黑马程序员__关于自己的一些学习死角的再学习(基于老毕的java基础视频)

2014-03-17 11:38 525 查看

----------------------<ahref="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<ahref="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!
----------------------

黑马程序员__关于自己的一些学习死角的再学习(基于老毕的java基础视频)

在学习配置环境变量时,本人也就是会弄,但是从没认真思考过,比如为什么要配置,甚至说path和classpath区别是什么?其实这些一想就清楚,只是可能是我视觉死角吧!

配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

其实classpath就是class文件的环境,path就是javac的

环境变量的配置:

永久配置方式:JAVA_HOME=%安装路径%\Java\jdk

path=%JAVA_HOME%\bin

临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin

特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

classpath的配置:

1):永久配置方式:classpath=.;c:\;e:\

2):临时配置方式:set classpath=.;c:\;e:\

如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;(这时classpath和path的一个区别)

如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。

如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。

一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。

运算符号:(不是什么难点,记清楚就行)

%:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。

逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。

^:异或:和或有点不一样。(一个数异或同一个数两次结果就还是那个数)

两边结果一样,就为false。

两边结果不一样,就为true.

& 和 &&区别: & :无论左边结果是什么,右边都参与运算。

&&:短路与,如果左边为false,那么右边不参数与运算。

| 和|| 区别:|:两边都运算。

||:短路或,如果左边为true,那么右边不参与运算。

>>>(无符号右移):搞清楚他与>>的区别

无符号右移无论最高位是什么,右移后空位用0补,而>>是最高位是什么它就补什么

在switch中如 果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现

当while和for可以进行互换时建议使用For循环,因为for循环完毕,变量在内存中释放。

(老外写代码就尽量都写for循环,节省资源)

关于break和continue:两者单独存在时底下都不可以定义其他语句,因为根本执行不到,编译会失败。(所以出现考官问这种情况会出现什么结果时,得回答编译失败)

而且break只能跳出当前循环,要跳出外部循环,只能给循环起个标号

标号 for(){}

函数:定义一个函数要明确:返回类型和参数列表

作用:定义功能,封装代码提高复用性(函数中只能调用函数,不能定义函数)

函数名:对功能进行标示,方便调用; 增加代码的阅读性(通过名称就可以明确函数功能,这一点我要注重学习)

如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

只要数据运算完成所在的区域结束,该数据就会被释放。

堆:用于存储数组和对象,也就是实体。就是用于封装多个数据的。

1每一个实体都有内存首地址值。(十六进制)

2堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。

3垃圾回收机制。

面向对象张孝祥老师讲过一句经典的话:谁对外提供数据,谁就对外提供这些数据的操作方法

匿名对象

1当对方法只进行一次调用的时候,可以使用匿名对象。

2当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。

类中怎么没有定义主函数呢?

注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。

主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用。

成员变量和局部变量的区别:

1:成员变量直接定义在类中。

局部变量定义在方法中,参数上,语句中。

2:成员变量在这个类中有效。

局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。

3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。

局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。

构造函数特点

1该函数的名称和所在类的名称相同。

2不需要定义返回值类型。

3该函数没有具体的返回值。

记住:所有对象创建时,都需要初始化才可以使用。

构造函数和一般函数有什么区别呢?

1两个函数定义格式不同。

2构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。

一般函数,是对象创建后,需要调用才执行,可以被调用多次。

什么时候使用构造函数呢?

分析事物时,发现具体事物一出现,就具备了一些特征,那就将这些特征定义到构造函数内。

构造代码块和构造函数有什么区别?

构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块。只要对象一建立。就会调用这个代码块。

注意:用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败

静态函数几个小点:

被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。

静态随着类的加载而加载。而且优先于对象存在。

静态方法只能访问静态成员,不可以访问非静态成员。

因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。

静态方法中不能使用this,super关键字。

因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。

成员变量存在于堆内存中。

静态变量存在于方法区中。

成员变量随着对象创建而存在。随着对象被回收而消失。

静态变量随着类的加载而存在。随着类的消失而消失

静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块à 构造代码块 à 构造函数;

----------------------<ahref="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<ahref="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!
----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: