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

Java中的==运算符[duplicate]

高建本
2023-03-14
"abc"=="abc"

共有1个答案

狄飞尘
2023-03-14

Java将所有文字(放置在代码中的字符串)保存在JVM内存的特殊部分中。如果有两个或多个相同的文字,JVM只指向同一个对象,而不是创建几个具有相同内容的字符串。

所以:

"ab" == "ab" // true - because they are the same objects

但是:

"ab" == new String("ab") // false - because new String(...) is new String not literal
    String ab1 = "ab";
    String ab2 = new String("ab");
    // ab1 == ab2 is false as described above
    ab2 = ab2.intern();
    // ab1 == ab2 but now it's true because ab2 pointers to "ab" in special part of memory.
 类似资料:
  • 问题内容: 任何人都可以通过一些示例解释在Java中使用^运算符吗? 问题答案: 与大多数语言中的^相同,只是XOR。

  • 问题内容: 考虑以下代码: 到底为什么呢? 我会这样计算: 但这是3。我不明白为什么在预先增加到时第二次不进行增加。 问题答案: 让我们首先关注看起来异常的行: 此处的运算符是(分配),(一元加号)和(预递增)。没有操作员。Java将其解释为两个运算符:和。添加适当的空格会更清楚: 现在让我们分析处理过程: 第一次迭代:和是。 预先增加到,这就是的结果。一元不执行任何操作,而是分配给。然后出现迭代

  • 问题内容: 有人可以向我解释为什么可以这样做: 没有操作符重载怎么办(在这种情况下为“ =“) 我来自C ++背景,因此可以解释… 问题答案: 在这种情况下,没有过载。与不同的Java片段是的定义-Java编译器将“”中的任何内容转换为,因此在您的示例中也是一个简单的赋值。在中,编译器将“”转换为,因此需要从转换为。

  • 问题内容: 如何与大整数一起使用?喜欢 Eclipse表示未为BigInteger定义运算符%。 有任何想法吗? 问题答案: 像这样: 或者,正如用户Duncan在评论中建议的那样,我们可以像这样完全删除if语句:

  • 问题内容: 几分钟前,我看到了这个问题,并决定查看java String类,以检查运算符是否有一些重载。 我什么也找不到,但我知道我可以做到 在哪里实施? 问题答案: 从精细手册中: Java语言为字符串连接运算符(+)以及将其他对象转换为字符串提供了特殊支持。字符串连接是通过(或)类及其方法实现的。字符串转换是通过toString方法实现的,该方法由Object定义并由Java中的所有类继承。有

  • 操作符=是什么意思?我以前没见过。