有人告诉我不能更改Java中的字符串。下面的代码呢?
name="name";
name=name.replace('a', 'i');
它不改变name
字符串吗?另外,replace()的实现在哪里;相比于(); 等于(); 提供?我只是在这里使用这些功能,但实际上在哪里实现?
String.replace()返回一个新的String。
“名称”是对String对象的引用,因此可以将其重新分配为指向name.replace(),但它将指向一个新对象。
这是String的javadoc,您可以在其中找到所有方法的作用。
我试图让一个语句起作用,但由于某些原因,它不起作用。应该很简单。 假设字符串 我的代码是: 两种规格的结果都是1。
问题内容: 考虑以下示例。 现在,在Java中,String对象是不可变的。然后如何为对象分配值“帮助!”。这是否与Java中字符串的不变性相矛盾?有人可以向我解释不变性的确切概念吗? 编辑: 好。我现在明白了,但只是一个后续问题。那么下面的代码呢: 这是否意味着将再次创建两个对象(“密西西比”和“ M!ss!ss!pp!”),并且引用在方法之后指向另一个对象? 问题答案: 不是对象,而是对对象的
问题内容: 我知道问题的标题不是很清楚,对此感到抱歉,不知道如何提出。我有一个非常基本的Java实现问题,我想着重于应用程序性能,但是它也涉及Java中的String创建模式。 我了解Java中字符串的不变性概念。我不确定的是,我在某处读到以下内容不会创建两个不同的String对象: 我想知道Java是怎么做到的?它实际上是否在程序存储器中寻找一个String值并检查其是否存在,如果不存在则创建一
本文向大家介绍Java中的不可变字符串,包括了Java中的不可变字符串的使用技巧和注意事项,需要的朋友参考一下 在Java中,不可变对象是指那些不能更改或修改(一旦修改)数据的对象。字符串类是不可变的,即一旦我们创建了一个字符串对象,就无法修改其数据。
据我所知, 可变字符串可以更改,不可变字符串不能更改。 这里我想这样改变字符串的值, 另一种方法是, 在这两种情况下,我都试图改变str的值。谁能告诉我,这两种情况的区别是什么,让我清楚地了解可变和不可变对象。
问题内容: 我们应该在编写字符串上进行同步吗?因为字符串是不可变的,所以我们永远不会在两个不同线程的读写之间获得不一致的状态,对吗? 换句话说,为什么我们没有字符串类型的原子? 问题答案: 值是不可变的,但变量不是。变量就是 变量 ,顾名思义, 变量 的值可以更改。 您不需要同步就可以访问一个不变的值。如果将值传递给您,则该值(的内容)将始终保持不变(不使用包)。 如果要同时访问多个gorouti