![]() |
1
12
... 实际上比看起来更复杂,因为您正在创建一个新字符串。这可能更容易理解为:
(绝对准确地说,它们并不完全相同。在原始版本中,“新字符串”是在编译时创建的,并且是.class映像的一部分。您可以将其视为性能攻击。)
接下来,JVM为新的SomeObject分配空间。这是Java内部簿记的一点空间,也是对象的每个字段的空间。在这种情况下,只有一个字段,
记住
接下来,执行构造函数。
所有这些只是复制
参考
到字符串,到您的
|
![]() |
2
7
Determining Memory Usage in Java
正如人们在评论中指出的,字符串是一种特殊情况,因为它们可以被拘留。您可以用相同的方式来解释它们占用的空间,但请记住,看起来像同一字符串的多个副本的内容实际上可能指向同一引用。 |
![]() |
3
3
要记住的要点:
|
![]() |
CocoaMix86 · 变量超出作用域后未回收内存[重复] 4 月前 |
![]() |
Yousef Dawood · javascript中的不变性是什么意思 10 月前 |
![]() |
SkyBlue · Java Spring服务的内存/垃圾收集器问题 10 月前 |
![]() |
f99 · 需要在内存位置使用指针-bad_alloc返回对象实例的建议吗? 11 月前 |