null是什么都没有,没有分配内存空间;new Object()则是创建了一个对象,并为其分配了内存空间。 除此之外,上述三者还有些什么区别?

解决方案 »

  1.   

    Object oo 申明一个Object类型的引用,只为引用oo分配了内存,oo未初始化Object oo2=null,申明了一个Object类型的引用,引用oo分配了内存,oo为null,不指向任何        Object实例Object oo3 = new Object();
       申明了一个Object类型的引用,并在堆中申请了一块内存存储new Object()创建的实例,再让引用oo3指向那个实例。
      

  2.   

    Object oo
    Object oo2=null
    好像还不太一样,第二种编译器认为你已经对oo2进行了初始化,第一种则不然
    如果oo是一个方法的返回值,编译器将提示对象没有初始化
      

  3.   

    我个人的理解也正如 kypfos(社会主义好) 所言。除此之外,是否还有更基本、更深入的解释呢?Object oo2 = null; (如楼上所说)其实也已经对oo2进行了初始化的。