1. Java中的null
在Java中,null - 空指针,即标识一个不确定的对象,该对象没有被初始化,也没有被赋值;在代码中,null通常可以直接赋值引用类型变量,将引用置为空,及该对象并没有分配内存空间!需要注意的是null不可以赋值给基本的变量,因为基本的变量的值是直接放在寄存器中,并不需要像对象那样添加引用,以特定的指向堆中某一个区域。
在Java中,变量使用遵循的是 定义 -> 初始化后才可以赋值。为了防止null 在Java中大量爆发,所以一般的对象如果没有初始化,一般都是默认为null 。
2. 容器类型与null
List:允许重复元素,可以加入任意多个null。
Set:不允许重复元素,最多可以加入一个null。
Map:Map的key最多可以加入一个null,value字段没有限制。
数组:基本类型数组,定义后,如果不给定初始值,则java运行时会自动给定值。引用类型数组,不给定初始值,则所有的元素值为null。
3.null在Optional中的含义及应用
若T类型数据可以为null,Optional<T>是用来以非空值替代T数据类型的一种方法。一个Optional对象可以包含一个非空的T引用(这种情况下我们称之为“存在的”)或者不包含任何东西(这种情况下我们称之为“空缺的”)。但Optional从来不会包含对null值的引用。
4. Java 8中Optional的使用
Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。
http://www.runoob.com/java/java8-optional-class.html
网友评论