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