gpt4 book ai didi

java - Java 如何将变量名与内存中的位置相关联?

转载 作者:搜寻专家 更新时间:2023-11-01 02:48:36 24 4
gpt4 key购买 nike

Java 如何将变量名与内存中的位置相关联?

我首先想到的是必须有一个用于所有变量名称的静态表,该表将变量名与其值或值的位置相关联。它是否存在,是否有此表的正式名称?

最佳答案

原始类型变量的值是一些数字,引用类型变量的值是一个引用(通常是内存地址)。

现在的问题是:给定变量的存储值在哪里。这取决于变量的种类——有局部变量、实例变量(字段)和类变量(静态字段)。

局部名称在编译期间解析。每个变量都成为方法中的第 i 个变量,它将作为第 i 个变量存储在某些方法调用的堆栈帧中。

对于实例变量,它会有所不同。字段名总是出现在字节码中(但通常不会出现在 JIT 编译器生成的机器代码中)。给定类的所有对象都具有相同的布局,因此类可以存储给定字段的偏移量 - 距对象开头的距离。解释器可以读取对象的地址并添加偏移量来计算变量存储的位置。

类变量类似于实例变量,但更简单。在这种情况下,类存储其变量的名称和值。

关于java - Java 如何将变量名与内存中的位置相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16528093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com