300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java变量(静态变量/成员变量/局部变量)初始化的问题

Java变量(静态变量/成员变量/局部变量)初始化的问题

时间:2018-06-24 14:29:54

相关推荐

Java变量(静态变量/成员变量/局部变量)初始化的问题

数组对象创建时,数组元素会自动初始化,然后再赋值对象在堆内存创建时,对象中的成员变量的值会自动初始化类的静态变量,在类加载进内存时自动初始化,静态变量在堆内存中的方法区中的静态区中方法内的局部变量,则不会自动初始化,必须手动初始化,否则报编译错误。局部变量在栈内存中不同数据类型的变量初始化的值,整数类型,默认 0;浮点数类型默认 0.0;字符类型默认 \u0000;布尔型默认 false;引用类型默认 null

public class Test {private String str = new String("123");}

上面 Test 类中的成员变量 str 何时初始化?

当构造 Test 类的实例对象时,成员变量 str 会在对象内创建并初始化,因为是引用类型的,所以初始化为 null,紧接着会创建一个字符串对象,并将该对象的内存地址赋值给变量 str。当再次创建一个 Test 对象时,成员变量 str 同样会在新的对象内部创建并初始化为 null,但是紧接着会判断内容为“123”的字符串对象是否已经存在,若存在则会将该字符串对象的内存地址赋值给新建的 Test 对象内的成员变量 str。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。