经常看到别人代码里在声明对象时都跟上=null。
虽然他们以后还会new这个对象,但是总是先=null。我的问题是,有必要一定要声明时立刻=null吗?不是一会儿就new它了吗?还有,假如我不=null,他们会自动被初始化null吗?java好像一些变量会被自动初始化,那么对象是否也会被初始化为null呢?

解决方案 »

  1.   

    这分两种情况:
    类对象成员变量:可以不=null 编译时自动赋予null值 即进行内存分配
    本地对象成员变量:必须=null 否则编译出错
      

  2.   

    补充一下我的想法:
    第一种情况在使用这个类成员变量时,因为编译时已经赋予了null值,相当于初始化了;第二种情况因为是使用时才初始化,即在用的地方或者是赋值的地方才初始化,这要求这个对象变量应该分配了内存空间;所以必须在声明对象时显示指定
      

  3.   

    解释一下:类对象成员变量 是类的成员变量,即可以用public,protected,private修饰的变量,本地对象成员变量  是方法里声明的变量
      

  4.   

    类对象成员变量:可以不=null 编译时自动赋予null值 即进行内存分配
    本地对象成员变量:必须=null 否则编译出错
      

  5.   

    这是java VM设计时的思想,为了节省使用内存,只有在使用相应的方法才去为成员变量申请内存