您的位置:首页 > 其它

对象赋值为null时 内存分配情况,以及什么时候使用效率高

2015-09-08 17:01 411 查看
对于成员变量也就是instance member来说是没区别的,对象初始化的时候会自动赋值成null。但是对于局部变量也就是local variable来说,不赋值初始化使用编译会报错。

对于一般的对象成员来说 分配好空间都会预先分配一个null值。所以写不写这个没什么特别的区别。但对于final成员来说,他只能被赋值一次,如果这里 写了=null已经算一次赋值了,那么你构造函数里面就不能再给这个final成员赋值。

当执行new为一个对象分配内存时,Java自动初始化所分配的内存空间。对于数值变量,赋初值0。对于布尔变量,初值为false。对于引用,即对象类型的任何变量,使用一个特殊的值null。

在Java中,null值表示引用不指向任何对象。运行过程中系统发现使用了这样一个引用时·可以立即停止进一步的访问,不会给系统带来任何危险。

自动初始化只用于成员变量,对方法中的自动变量不起作用。Java规定,任何变量使用之前,必须对变量赋值。由于方法内的自动变量不能进行自动初始化,因此要求程序员显式地对其赋值。当然可以给变量赋值为null。如果在变量赋值之前使用它,编译器会指出一条错误信息。告知自动变量未被初始化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: