3

来自问题的两个具有相同内容的字符串是否会存储在相同的内存位置?

拥有 Java 代码

String s1="Java";

这个字符串会被分配在相同的内存位置(或多重):

  • 如果要启动同一个程序多次并行(同时)执行它?

可能的答案:

我目前是 C# 开发人员(尽管在上个千年用 Java 编程)。

我问这个问题是因为我相信 .NET CLR 和 Java (JVM) 之间是一样的,我希望能得到 .NET 应用程序的答案(但不知何故,经常遇到的“应用程序”池术语有疑问)。

所以,它似乎是(抱歉在询问之前没有详尽搜索):

答案是字符串实习生池由同一 JVM 或 .NET CLR 的所有实例/程序共享。

4

4 回答 4

2
Is string pool created per class basis or per JVM basis?

每个 JVM 有一个字符串池……除非您使用的是一些奇特的 JVM,而他们决定以不同的方式实现它。

我想这可以回答它,对吧?

类似的问题

于 2013-04-05T06:37:24.983 回答
2

相同的内存位置:

String s1="Hola";
String s2="Hola";

不同的内存位置:

String s1="Hola";
String s2=new String("Hola"); 
于 2013-04-05T07:03:27.227 回答
1

@gennady-vanin-新西伯利亚....

String s1="Java";String s2="Java";String s3="Java";String s4="Java";

  1. StringConstantPool位置中可用的上述所有对象都是所有对象都指向一个(“Java”)位置
于 2013-04-05T06:50:13.143 回答
0

相同内容的字符串将共享相同 JVM 的每个实例的相同空间

于 2013-04-05T06:37:11.007 回答