gpt4 book ai didi

java - java引用变量存储在哪里?

转载 作者:IT王子 更新时间:2023-10-28 23:35:01 25 4
gpt4 key购买 nike

Java 的引用变量是如何存储的?是不是和 C 指针类似?

我所说的引用变量是这段代码中的 myDog

Dog myDog = new Dog();

我了解C指针,如果是全局变量它存储在堆中,如果是局部变量它存储在堆栈中。我想知道java的工作方式相同。

最佳答案

您需要了解一些较低级别的 Java 内存组织。在堆栈上,存储了指向堆的基元(int、double、boolean 等)和对象引用

在任何对象内部都是如此。它要么直接包含对其他对象或原语的引用。对象在任何上下文中都是始终引用,并且这些引用是按值传递的。

所以我们可能有:

[ STACK ]                          [ HEAP ] 
int a: 10; -> MyWrapperObject@21f03b70====||
double b: 10.4; | || int someField: 11 ||
MyWrapperObject@21f03b70 ------| || String@10112222 ----------
...... ||==========================|| |
|
|
String@10112222============||<----
|| ... ||
|| ... ||
}}=========================||

请注意,在某些情况下(如通过 JVM 内部)使用的对象可能存储在非堆内存中。

关于java - java引用变量存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19623563/

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