Java null 总结
2018-07-11 本文已影响10人
Little丶Jerry
问:简单谈谈你对 Java 中 null 的理解与认识?
答:
-
null 是 java 的关键字。
-
null 是 java 中引用类型的默认值。
-
null 既不是对象也不是一种类型,仅是一种特殊的值,我们可以将其赋予任何引用类型,也可以将 null 强转化成任何类型。
-
null 可以赋值给引用变量,但不能赋给基本类型变量,否则编译会报错。但是如果将 null 赋值给包装类型,然后将包装类型赋给各自的基本类型,编译器不会报,但在运行时会抛出空指针异常,这是因为 Java中 自动拆箱导致的。
-
instanceof 中使用带有 null 值的引用类型变量将会返回 false,这是 instanceof 操作符一个很重要的特性。
-
不能使用值为 null 的引用类型变量来调用对象的非静态方法(NPE 问题),但是可以使用值为 null 的引用类型变量来调用对象的静态方法,因为静态方法使用静态绑定,编译时就决定了,所以运行时不会抛出空指针异常。
-
可以使用 == 或 != 操作符来比较 null 值,但是不能使用其他操作符或者逻辑操作(譬如 < 或 > 等)来比较 null 值(会发生 NPE 问题),在 Java 中 null == null 会返回 true。
本文参考自 Java 中 null 相关的题目解析