问题描述
在形式上,null
是该null
类型的单例成员,该成员被定义为所有其他Java类型的子类型。
null
是引用类型,其值是唯一不引用任何对象的引用值。因此,null
在内存中没有任何表示形式。引用类型变量的二进制值,其值仅null
是零(全零位)。即使未明确指定,它也遵循对象的一般初始化语义,任何其他值都会给实现带来重大问题。
解决方法
据我了解,null
是T
所有引用类型的实例T
。
问题1. 的防御是null
什么?null
在内存中如何表示?
考虑以下情况:我们定义了类
public class MyClass{
Integer i;
}
现在null
可以强制转换为MyClass
,但我没有明确定义。
问题2. 从什么编译器将知道null
可以转换为MyClass
?