变量生命周期、空值与类型转换全解析
变量的生命周期与基本操作
变量的生命周期结束时会进行终结操作,终结方式主要有两种:
- 生命周期结束时:变量生命周期结束时进行终结。
- 未来某个时间:由垃圾回收器在未来不确定的时间进行终结。
变量采用哪种终结方式主要取决于其类型,像数组、关联数组和类等类型通常会在未来某个时间由垃圾回收器进行销毁。
变量在生命周期内还会经历赋值操作。对于简单的基本类型,赋值只是改变变量的值。但一般来说,赋值包含两个步骤,且这两个步骤不一定按以下顺序执行:
- 销毁旧值
- 构造新值
对于不需要销毁操作的简单基本类型,这两个步骤并不重要。但对于需要销毁操作的类型,要记住赋值是上述两个步骤的组合。
空值与 is
运算符
引用类型的变量不一定引用特定对象。例如:
MyClass referencesAnObject = new MyClass;
MyClass variable; // 不引用任何对象
这里的 variable
有标识,但尚未引用任何对象,可想象其在内存中的状态如下:
variable
───┬──────┬───
│ null │
───┴──────┴───
不引用任何值的引用为 null
。处于这种状态的变量几乎无用,因为