值类型和引用类型
- 值类型
- 值类型变量都存储在堆栈中。
- 访问值类型变量时,一般都是直接访问其实例。
- 每个值类型变量都有自己的数据副本,因此对一个值类型的变量的操作不会影响其他的变量。
- 复制值类型变量时,复制的是变量的值,而不是变量的地址。
- 值类型变量不能为null,必须具有一个确定的值。
- 引用类型
- 必须在托管堆中,为引用类型变量分配内存
- 必须使用new关键字来创建引用类型变量
- 引用类型变量是由垃圾回收机制来管理的
- 多个引用类型变量都可以引用同一个对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一对象
- 引用类型被赋值之前的值都是null