从这个问题未来将与相同内容的两个字符串存储在相同的内存位置?
具有Java代码
String s1="Java";
将这个字符串在同一个存储位置(或multipe)进行分配:
可能的答案:
我目前的C#开发者(虽然在编程中的Java以前的千年)。
我问这个问题,因为我认为这是.NET CLR和Java(JVM),我希望得到的.NET应用程序的答案之间的相同(但不知何故,是由经常遇到的“应用程序”池方面怀疑)。
所以,这似乎是(对提问前没有详尽搜索不好意思):
- 请问CLR / JVM保持一个单一的实习生池所有正在运行的.NET / Java应用程序?
的回答是字符串实习生池每同一JVM或.NET CLR的所有实例/程序共享。
@根纳季 - 瓦宁 - 新西伯利亚....
字符串S1 = “Java” 的;字符串S2 = “Java” 的;串S3 = “Java” 的;串S4 = “Java” 的;
- 上述在StringConstantPool地点的所有对象的全部对象都指向只有一个(“Java”的)位置
Is string pool created per class basis or per JVM basis?
有每个JVM一个字符串池......除非你使用了一些异国情调的地方JVM,他们已经决定以不同的方式实现它。
我认为,答案,对吗?
从类似的问题
相同的内存位置:
String s1="Hola";
String s2="Hola";
不同的存储位置:
String s1="Hola";
String s2=new String("Hola");
的内容相同的字符串将共享同一空间同一JVM中的每个实例