JAVA 对象初始值问题

[复制链接]
查看11 | 回复4 | 2010-9-12 16:04:25 | 显示全部楼层 |阅读模式
经常看到别人代码里在声明对象时都跟上=null。
虽然他们以后还会new这个对象,但是总是先=null。
我的问题是,有必要一定要声明时立刻=null吗?不是一会儿就new它了吗?
还有,假如我不=null,他们会自动被初始化null吗?java好像一些变量会被自动初始化,那么对象是否也会被初始化为null呢?

回复

使用道具 举报

千问 | 2010-9-12 16:04:25 | 显示全部楼层
如果你不在声明时=null,你后面有可能就忘记了初始化,而直接使用了,这样的后果有可能没有报错误,但是执行的结果运行了一段时间才发现错了。这样的错误很难找。如果你一开始声明时就=null,后面如果忘记初始化而使用这个对象时,就会抛空指针异常,这时你立刻就知道是什么问题。所以这不仅仅是个好习惯,而且会给你带来很多好处,其中之一就是不用为了查找一个这样的隐蔽错误而加班了。
回复

使用道具 举报

千问 | 2010-9-12 16:04:25 | 显示全部楼层
在初始化变量时,如果对象是成员变量且没有赋初值,java会自动帮你初始化为null的,如果不是成员变量,声明时就必须赋初值。对象=null的意思是,在内存的堆栈里给你分配了一小块这个对象名的空间,里面什么都没存,实际上应该是你实例化的类在堆内存中的地址。
回复

使用道具 举报

千问 | 2010-9-12 16:04:25 | 显示全部楼层
还有,假如我不=null,他们会自动被初始化null吗?类中的属性会..方法中的临时变量不会..比如class A {
String a;
void method() {
String b;
}}其中a会默认初始化为null..也就是说你用他之前可以不用初始化..b就不会了..在那个方法
回复

使用道具 举报

千问 | 2010-9-12 16:04:25 | 显示全部楼层
类的对象自动初始化为null 要看类的构造函数中是否提供了默认的初始化构造函数,所以在不知道类的前提下,将对象显示初始化为null是保险的做法,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行