当前位置: 首页 > 知识库问答 >
问题:

Java中的字符串重用[重复]

和魁
2023-03-14
class A { public String test = "test";}
class B { public String test = "test";}
...
public static void main (String[] args)
{
    String test = "test";
    System.out.println(test == "test");                // true
    System.out.println(test == new String("test"));    // false
    System.out.println(new A().test == new B().test);  // true
}

共有1个答案

龚威
2023-03-14

String文本总是被存储,这并不直接依赖于平台。

除非通过构造函数使用显式初始化习惯用法(new String(someString))。

在这种情况下,将创建一个新的对象,这将导致引用相等运算符(==)返回false

 类似资料:
  • 问题内容: 在这里,我们将字符串h引用为字符串文字hi。JVM有一个字符串文字池来存储字符串文字,因此我们可以在字符串不可更改的情况下重用它们。 当我们说这的确切含义是什么?我们在谈论什么吗?是否从相同的地址传送时间中选取? 问题答案: 是的,为了简化起见,您可以将其视为从同一地址选择,但更精确的是变量拥有相同的 引用 ,即JVM 在映射到对象的正确内存地址时 使用的 数字/对象ID (对象可以在

  • 在C语言中,创建我所知道的多行字符串的最佳规范方法是创建相邻的字符串,并让编译器在编译时将它们连接起来,如下所示: 在Java中,我知道的唯一方法是使用连接: 问题是,这是在运行时生成单个字符串,还是java在编译时也会连接?这个问题出现的原因是因为以下行为:

  • 问题内容: 我们给了一个字符串,例如,取“ TUOPPPPJHHTT”。我们希望找出哪个字符在字符串中连续出现次数最多以及发生多少次。在这种情况下,其P发生4次。 我尝试如下运行for循环 但是用这种方法,问题是它将计算所有字母的重复出现。 问题答案: 每次找到与上一个字符不同的字符,则表示运行(连续重复的字母)结束,因此您应记下当前运行的长度(即的值),然后重置计数。最后,您可以打印最大值。

  • 问题内容: 我想问一个有关在Java中避免字符串重复的问题。 该 情境 是:以标签和属性像这样的一个XML: 使用JibX,此XML将在如下所示的类中进行编组/解组: 该程序是长时间的批处理,因此将创建,使用,复制产品对象。 好吧, 问题 是:当我使用 Eclipse内存分析器(MAT)之 类的软件分析执行时,我发现了几个重复的String。例如,在id属性中, PROD 值在2000个实例左右重

  • 我试图创建一个名为“回文”的方法,该方法接收一个字符串,如果该字符串是回文,则返回布尔值true,否则返回false。如果一个单词向前和向后读都一样,那么它就是一个回文。比如level这个词就是一个回文。 例如,通过考虑通过删除所有空格和标点符号并将所有字母转换为小写形式获得的文本,将其转换为回文: 女士,我是亚当== 一个人,一个计划,一条运河:巴拿马== 我尝试处理我使用并输出作为替换all的