关于java字符串文本的冲突语句
执行以下语句时创建了多少个对象关于java字符串文本的冲突语句,java,string,Java,String,执行以下语句时创建了多少个对象 String s1 = "abc"; String s2 = "abc"; String s3 = new String("abc"); String s4 = new String("abc"); 给出上述java问题——我认为答案应该是3。 第一个对象是为第#1行创建的,假设字符串“abc”以前不存在。 对于第二行,由于插入了字符串文字,所以不会创建额外的对象。对于第3和第4站,将创建另外2个对象。因此,总共创建了3个对象。这一逻辑与 字符串文字是
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
给出上述java问题——我认为答案应该是3。
第一个对象是为第#1行创建的,假设字符串“abc”以前不存在。
对于第二行,由于插入了字符串文字,所以不会创建额外的对象。对于第3和第4站,将创建另外2个对象。因此,总共创建了3个对象。这一逻辑与
字符串文字是对类字符串实例的引用
(§4.3.1, §4.3.3). 此外,字符串文本总是引用相同的字符串
类字符串的实例。这是因为字符串文字-或更多
通常,字符串是常量表达式的值
(§15.28)-被“拘留”,以便使用
方法String.intern
令人困惑的是java教程中关于字符串的内容
每当在代码中遇到字符串文字时,编译器
创建一个字符串对象,其值在本例中为Hello world
“where”的用法在这里令人困惑。所以真正的问题是,我们可以做些什么来要求人们编辑教程来纠正它。否则它会让很多人感到困惑,因为即使是有经验的专业人士也会引用这个网站。您提到的Java教程是错误的,因为它没有考虑字符串的内部处理
你说的是三个对象,这是正确的。你提到的Java教程是错误的,因为它没有考虑字符串的内部处理
你说的是三个对象,这是正确的。你提到的Java教程是错误的,因为它没有考虑字符串的内部处理
你说的是三个对象,这是正确的。你提到的Java教程是错误的,因为它没有考虑字符串的内部处理
你是正确的,它将是三个对象你是正确的,关于对象的创建,它将创建三个对象 关于对象的创建,您是正确的,它将创建三个对象 关于对象的创建,您是正确的,它将创建三个对象 关于对象的创建,您是正确的,它将创建三个对象 它将创建3个对象
它将创建3个对象
它将创建3个对象
它将创建3个对象
谢谢大家的回答。我刚刚向javasedocs报告了文档中的不一致性(以及可能的错误)_us@oracle.com
希望他们能做出回应,并进行整改。谢谢大家的回答。我刚刚向javasedocs报告了文档中的不一致性(以及可能的错误)_us@oracle.com
希望他们能做出回应,并进行整改。谢谢大家的回答。我刚刚向javasedocs报告了文档中的不一致性(以及可能的错误)_us@oracle.com
希望他们能做出回应,并进行整改。谢谢大家的回答。我刚刚向javasedocs报告了文档中的不一致性(以及可能的错误)_us@oracle.com
希望他们能做出回应,并进行整改。阅读roger_在这篇文章中的第二个答案。它会清除一切 顺便说一下,它将为字符串值创建3个对象。常量字符串池中的一个“abc”,s1和s2将引用相同的值。字符串池外的两个不同的“abc”值s3和s4将分别引用它们
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
关于您的困惑:
令人困惑的是关于字符串中字符串的java教程
每当它在代码中遇到字符串文字时,编译器
创建一个字符串对象,其值在本例中为Hello world
上述说法没有错。
它将创建4个字符串类的对象,即s1、s2、s3、s4(上面的行是关于这些对象的)
这里,s1和s2都将引用字符串池中的相同值“abc”,而s3和s4将引用字符串池之外的不同“abc”值
请参阅这两篇文章中的图片以了解更多说明
阅读罗杰•欧在这篇文章中的第二个答案。它会清除一切 顺便说一下,它将为字符串值创建3个对象。常量字符串池中的一个“abc”,s1和s2将引用相同的值。字符串池外的两个不同的“abc”值s3和s4将分别引用它们
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
关于您的困惑:
令人困惑的是关于字符串中字符串的java教程
每当它在代码中遇到字符串文字时,编译器
创建一个字符串对象,其值在本例中为Hello world
上述说法没有错。
它将创建4个字符串类的对象,即s1、s2、s3、s4(上面的行是关于这些对象的)
这里,s1和s2都将引用字符串池中的相同值“abc”,而s3和s4将引用字符串池之外的不同“abc”值
请参阅这两篇文章中的图片以了解更多说明
阅读罗杰•欧在这篇文章中的第二个答案。它会清除一切 顺便说一下,它将为字符串值创建3个对象。常量字符串池中的一个“abc”,s1和s2将引用相同的值。字符串池外的两个不同的“abc”值s3和s4将分别引用它们
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
关于您的困惑:
W
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");