java中的空对象是干什么用的 不太理解,请大家赐教

解决方案 »

  1.   

    就是 java 面向对象的一个语言特征(不过这个叫法并不严格,官方无此说法)
    只有引用,没有实例的class,声明后在栈里会有一个指针,但指向地址为空,没有分配堆内存此时通常叫做空对象。只是一个语言特征而已,实际没什么特殊用处
      

  2.   

    空对象/空指针 在大多数主流的编程语言中都存在,如C/C++、Java、Python 等。楼上的两位解释的都很清楚,我也就不在次重复。这个空指针的发明创造来自1965年,它会在程序运行的时候出现运行时错误。Java此时会抛出空指针异常,C/C++遇到这个错误会直接Crash掉。而现在的编程语言引入了“非空引用”的声明规格,如Cyclone 、Haskell 。这个方案在1965年曾被空指针的发明者C.A.R. Hoare给拒绝了。也就是说空指针的引入本身就是个错误,咱们只需要知道它是什么就可以了,至于它为什么存在楼主也并不需要追究。
      

  3.   

    只有引用,没有实例的class,声明后在栈里会有一个指针,但指向地址为空,没有分配堆内存
      了解
      

  4.   

    哥们,你是看了重构里的那个NullObject吗???
    我看过后感觉那个就是在判断null时用的一种方式,不用返回NULL,直接返回定义的如Person,则同时定义一个NullPerson,当为空时返回它。