Java中null 与0 的详细区别

2024-12-31 22:26:27
推荐回答(3个)
回答1:

在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字节。

回答2:

给一个引用变量赋值0,例如:int i=0;
则内存中会在栈区创建一个引用i,指向常量池中的整数0

给一个引用变量赋值null,例如:Object obj=null;
则会在栈区创建一个引用obj,不指向任何地址

回答3:

java是面向对象的 null代表空 是一种类型 0是另一种类型