记录,分享
分类: Java
2014-06-27 16:24:17
2. 变量的初始化及默认值:a.为对象分配内存空间。将对象的成员变量自动初始化为默认值。b.如果对象的成员变量在类内部声明时被显式初始化,则其值赋给属性。c.调用构造方法。d.返回对象的引用。
(1)成员变量的初始化:不惯程序有没有显式进行初始化,虚拟机都会先自动给他初始化为默认值,规则如下
- 整数型:0
- float:0.0f
- double:0.0d
- char:”\u0000“
- boolean:false
- 引用类型(数组也是引用类型):null
- 数组对象里的元素:分别初始化为相应类型的默认值
(2)局部变量的初始化:局部变量声明之后,虚拟机不会走动给他初始化为默认值,因此对于局部变量,必须先进行显式初始化,再使用它。
3. 静态变量和实例变量的生命周期分别与类生命周期和对象生命周期相同。
(1)基本变量类型转换
(2)引用变量类型转换:
编译阶段 —— 对于引用类型变量,编译器值根据变量被显式声明的类型区编译。在引用类型变量之间赋值时,两边的变量必须在继承树的同一个分支上,否则编译报错。运行阶段 —— 在运行时,虚拟机将根据引用变量实际引用的对象进行转换。Animal cat = new Cat();Dog dog = (Dog)cat; //编译可以通过,但运行时抛出ClassCastException