1 用引用操作对象
在 Java 语言中我们知道一切都是对象,但操作的标识符其实是一个“引用”,一个引用并不一定需要和一个对象关联。
String str ;
这时 str
就是一个引用而不是一个对象。当我们对一个为初始化的引用进行操作时便会遇到运行时异常。
2 对象的创建
存储到什么地方
当程序运行时,对象所存放的位置:
- 寄存器:这是最快的存储区,它位于处理器内部,但是存储器的数量是极其有限的,所以存储器是按需分配,我们不可以进行操作。
- 堆栈:仅次于寄存器,位于通用 RAM(随机访问存储器),通过堆栈指针可以从存储器中分配/释放内存,java 系统必须知道存储在堆栈内所有项的确切的生命周期,以便于上下移动指针,这一约束限制了程序的灵活性,所以对象一般不会被存储着堆栈中,堆栈一般存储对象的引用。
- 堆:一种通用的内存池(位于RAM),用于存放 java 对象,在堆中分配有很大的灵活性,因为不需要知道存储在堆中的数据的生命周期,但分配/清理可以消耗的时间要长于堆栈。
- 常量存储:常量值通常被存储在程序代码内部,因为其永远都不会被改变。
- 非 RAM 存储
基本类型
基本类型 | 默认值 | 大小 |
---|---|---|
boolean | false | - |
char | null | 16b |
byte | (byte)0 | 8b |
short | (short)0 | 16b |
int | 0 | 32b |
long | 0L | 64b |
float | 0f | 32b |
double | 0.0d | 64b |