Use use1 = new Use();
内存中的实际情况:
| 栈内存 (Stack) | 堆内存 (Heap) |
|---|---|
use1 --- 存储的是地址/引用 (如 0x001A) |
new Use() --- 实际的对象实例数据 |
use1 本身不是对象,而是指向对象的引用(类似 C 语言的指针,但 Java 不暴露具体地址)。
简单类比:
-
对象实例 = 你家房子(在堆内存里)
-
use1= 你家的门牌号/地址(在栈内存里)
你通过 use1 这个"门牌号"找到并操作实际的对象。
再深入一点:
Use use2 = use1; // use2 和 use1 指向同一个对象!
这时候 use1 和 use2 两个引用,都指向同一个堆内存中的对象实例。