Java字符串中的内存分配

kir*_*mar 2 java

如果

String x = "abc";
 String y = "abc";
Run Code Online (Sandbox Code Playgroud)

x和y的内存分配是多少?

Jon*_*eet 7

这两个变量将分别占用参考所需的空间.

由于字符串文字的实习,这两个引用都具有相同的值 - 也就是说,它们将引用相同的对象.换句话说,只有一个String对象.但是很多时候你执行这段代码(至少在同一个类加载器中)的值xy将始终引用相同的单个对象.

当然,这两个变量仍然是独立的 - 你可以在不改变另一个的情况下改变一个:

String x = "abc";
String y = "abc";
x = "def";
System.out.println(y); // Still prints abc
Run Code Online (Sandbox Code Playgroud)