# Java-Null
# null的意义
Java中,null
(全部小写)是一个关键字,用来标识一个不确定的对象。因此可以
将null赋给引用类型变量,但不可以
将null赋给基本类型变量。
int a = null; //error
Object o = null; //right
null本身不是对象,也不是Objcet的实例null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是java.lang.Object的实例
在定义变量的时候,如果定义后没有给变量赋值,则Java在运行时会自动给变量赋值。赋值原则是整数类型int、byte、short、long的自动赋值为0,带小数点的float、double自动赋值为0.0,boolean的自动赋值为false,其他各供引用类型变量自动赋值为null
# null的作用
- 判断一个引用类型数据是否为null,用==来判断
- 释放内存,让一个非null的引用类型变量指向null,这样这个对象就不再被任何对象应用了。等待JVM垃圾回收机制去回收
# null的注意事项
1.a==null 和 null==a 的区别? 其实没有什么区别,唯一的区别可能是 我们想判断a是否为null, 可以写if(a==null), 但是这有个问题,一不小心手滑了就写成if(a=null). 在不少语言里这是可以编译&运行的,并且得不到你希望的结果。所以干脆养成习惯,做比较的时候把变量和值倒个位置——if(null==a)因为null=a是一定会报错的。同理,(null!=a)也是继承了这一精神