gpt4 book ai didi

java - Java 中的字符串和数组对象

转载 作者:行者123 更新时间:2023-11-29 07:40:43 25 4
gpt4 key购买 nike

在 Java 中,对象是使用 new 关键字创建的,它们存储在堆中。

众所周知,StringArray 是非原始数据类型,它们在Java 中被视为对象。
但是我们可以在不使用 new 关键字的情况下声明任何 StringArray 对象。

所以我的问题是:它们存储在内存中的什么位置?

最佳答案

But we can declare any string and array object without using new keyword.

显然...

So where are they stored in memory?

在堆中。那些声明字符串和数组的特殊方式只是语法糖。底层对象的工作方式(几乎1)与使用 new 实例化的对象相同。所有对象都在堆2中。


1 - 字符串文字有一个小问题。对于一些较旧的 JVM,与文字对应的字符串对象保存在单独的“permgen”堆中。这种区别在 Java 8 中已基本消除。

2 - 在最近的 JVM 中(我认为是从 Java 7 开始),有一个 JVM 开关可以启用 JIT 编译器优化,它可以在堆栈上存储一些对象。但是,这对应用程序代码是完全透明的,您不能“强制”它在应用程序代码中发生。

关于java - Java 中的字符串和数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30542695/

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