我正在研究 Java 中的 String,我想知道它们之间有什么区别:
String hello = "Hello Java";
System.out.println(hello);
并且只使用这个:
System.out.println("Hello Java");
它们是一样的吗?两者都进入字符串池?谢谢!
第二个例子:
if("dog" == "cat")
return true;
这些文字是否存储在 Java 内存中?如果是商店,引用资料是什么?
最佳答案
String hello = "Hello Java";
-
"Hello Java"
是java文字。它被放入String Pool
-
hello
是对String Pool
中的值的 java 引用 - 此处恰好创建了一个对象
String hello = new String("Hello Java");
-
"Hello Java"
是java文字。它被放入String Pool
-
hello
是对Object
的java引用来自Hash
其值为String Pool
- 此处创建了两个个对象
-
String helloNew = hello.intern();
输入hello
中的字符串到String Pool
,发布new String("Hello Java")
并从String Pool
检索对该值的引用。
System.out.println("Hello Java");
-
"Hello Java"
是java文字。它被放入String Pool
- 此处恰好创建了一个对象
- 注意:没关系
String hello = "Hello Java"
或简单"Hello Java"
,每个字符串文字都会转到String Pool.
关于java - "string"和字符串 x = "string"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58270682/