在java中,对象变量引用指向什么?

7d7tgy0s  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(304)

我看到数组引用指向数组[0]的内存地址。对象变量的内存地址指向什么?ie car c1=新车(“雪佛兰”、“塔霍”);
我想它可能指向第一个示例变量,但这没有意义b/c可以有不带示例变量的类。

tgabmvqs

tgabmvqs1#

对象变量的内存地址指向什么?
对象只是一块内存。在java的典型实现中,该块是称为堆的更大范围内存的一部分。
究竟是什么组成了对象的结构,它的特定位和字节对于我们普通的java程序员来说并不重要。对象的结构是如何在内存中布局的,这是一个与我们无关的实现细节。
ie car c1=新车(“雪佛兰”、“塔霍”);
这里涉及两个步骤。
作业的右侧 = 示例化对象。这意味着堆中有一块内存。传递给构造函数的值将写入该内存中的成员字段中。
作业的左侧 = 获取新创建的对象的位置并将其分配给名为 c1 . 如果 c1 是一个局部变量,它存在于堆栈中,在java的典型实现中。
在java中,我们永远看不到实际的内存地址。在代码中,例如 c1.model ,我们相信jvm会找到 c1 在堆栈上,使用其内部维护的内存地址来访问特定的 Car 对象,然后在该对象分配的内存块中导航以检索名为的成员字段的值 model .

相关问题