字符串对象和字符串文本之间的区别
2022-08-31 05:32:42
两者之间有什么区别
String str = new String("abc");
和
String str = "abc";
两者之间有什么区别
String str = new String("abc");
和
String str = "abc";
使用字符串文本时,可以暂存该字符串,但在使用时,您将获得一个新的字符串对象。new String("...")
在此示例中,两个字符串文本引用同一对象:
String a = "abc";
String b = "abc";
System.out.println(a == b); // true
这里,创建了2个不同的对象,它们有不同的引用:
String c = new String("abc");
String d = new String("abc");
System.out.println(c == d); // false
通常,应尽可能使用字符串文本表示法。它更易于阅读,它使编译器有机会优化代码。
字符串文本是 Java 语言的概念。这是一个字符串文本:
"a String literal"
String 对象是类的单个实例。java.lang.String
String s1 = "abcde";
String s2 = new String("abcde");
String s3 = "abcde";
所有这些都是有效的,但有细微的差异。 将引用一个滞留的字符串对象。这意味着,字符序列将存储在一个中心位置,并且每当再次使用相同的文本时,JVM 将不会创建新的 String 对象,而是使用缓存的 String 的引用。s1
"abcde"
"abcde"
s2
被保证为一个新的 String 对象,因此在本例中,我们有:
s1 == s2 // is false
s1 == s3 // is true
s1.equals(s2) // is true