Java中null 与0 的详细区别

如题所述

在java中,一个对象可以被赋值为null。而0仅仅是代表int类型的一个赋值。
声明Object obj;
obj.getClass();
那么编译器肯定会报错不让你编译
声明Object obj=null;
obj.getClass();
那么编译器不报错了,因为obj被赋值为null,null算是一个对象,代表空值,无指向任何内存地址。
null不是一个实例对象所以如果编译通过运行上面的代码会抛出nullpointerException。
声明一个对象等于null,在运行中占用了1字节的空间;声明int a=0;在32位系统下占用了4字节。不过事实上-127--127的int值已经在运行时就固定在内存了,多声明几个变量等于0还是只占4字节。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-28
给一个引用变量赋值0,例如:int i=0;
则内存中会在栈区创建一个引用i,指向常量池中的整数0

给一个引用变量赋值null,例如:Object obj=null;
则会在栈区创建一个引用obj,不指向任何地址本回答被提问者采纳
第2个回答  2011-11-13
java是面向对象的 null代表空 是一种类型 0是另一种类型
相似回答