字符串对象是否由java代码创建

字符串对象是否由java代码创建,java,Java,对于以下代码: 将在堆区域而不是字符串池区域内创建字符串对象: String str = new String("very"); 现在,如果我修改str以引用good,如: str = "good"; 它会修改在堆中创建的对象并将其值更改为good,还是会在池中创建一个新的good对象 String str = new String("very"); str是一个参考。这意味着它指向一个字符串对象 当你这样做的时候 str = "good" 你只需要让str指向另一个对象。您没有

对于以下代码:

将在堆区域而不是字符串池区域内创建字符串对象:

String str = new String("very");
现在,如果我修改str以引用good,如:

str = "good";    
它会修改在堆中创建的对象并将其值更改为good,还是会在池中创建一个新的good对象

String str = new String("very");
str是一个参考。这意味着它指向一个字符串对象

当你这样做的时候

str = "good"
你只需要让str指向另一个对象。您没有试图更改str指向的对象的内容

如果您执行类似str.Method的操作,这将是尝试在str指向的对象上执行某些操作,但由于string仍然是不可变的,您将从中获得一个新的string对象

但只要做

str = ...
如果您在其他地方创建引用点,这将与所有引用类型通用

str是一个参考。这意味着它指向一个字符串对象

当你这样做的时候

str = "good"
你只需要让str指向另一个对象。您没有试图更改str指向的对象的内容

如果您执行类似str.Method的操作,这将是尝试在str指向的对象上执行某些操作,但由于string仍然是不可变的,您将从中获得一个新的string对象

但只要做

str = ...

如果您在其他地方创建引用点,这将与所有引用类型通用。

它将返回字符串对象。
String类是不可变的,因此一旦创建了String对象,就不能对其进行更改。String类有许多方法,下面将讨论其中一些方法,它们似乎可以修改字符串。由于字符串是不可变的,这些方法真正做的是创建并返回一个包含操作结果的新字符串

它将返回一个字符串对象。 String类是不可变的,因此一旦创建了String对象,就不能对其进行更改。String类有许多方法,下面将讨论其中一些方法,它们似乎可以修改字符串。由于字符串是不可变的,这些方法真正做的是创建并返回一个包含操作结果的新字符串

这里str在字符串对象的引用中具有非常高的值。 新的Stringvery是用java创建的引用对象。 而very是将被Good替换的值,它不创建任何新对象,而是在同一内存单元中

这里str在字符串对象的引用中具有非常高的值。 新的Stringvery是用java创建的引用对象。
然而,在同一个存储单元中,在不创建任何新对象的情况下,用Good替换的值是非常大的。

可能重复的可能重复的可能重复的可能重复的可能重复的可能重复的可能重复的是什么使你说这是一个矛盾?正确地阅读答案是什么让你说这是矛盾的?正确地阅读答案