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

在系统中使用str1==str2。出来println只打印true或false,但不打印随其一起写入的任何文本[重复]

庞鸿骞
2023-03-14

这就是我所说的:

package finalExample;

public class FinalExample {

public static void main(String args[]) {

    final String str1 = "str";
    final String str2 = "ing";

    String str11 = "str";
    String str22 = "ing";

    System.out.println("Using equals() for non final :" + str11.equals(str22));
    System.out.println("Using == for non final :" + (str11==str22));
    System.out.println("MAGIC Using == for non final :" + str11==str22);

    System.out.println("Using equals() for final :" + str1.equals(str2));
    System.out.println("Using == for final :" + (str1==str2));
    System.out.println("MAGIC Using == for final :" + str1==str2);
}

}

输出为:

Using equals() for non final :false
Using == for non final :false
false
Using equals() for final :false
Using == for final :false
false

两个MAGIC语句都没有打印。为什么会这样?

共有3个答案

松桐
2023-03-14

我想它确实印出来了。结果为假;所以它打印“false”,您可以认为它是:res=“MAGIC Using==for final:”str1;println(res==str2),因此它会打印false。

傅志诚
2023-03-14

你在评估

"MAGIC Using == for non final :" + str11

这是一个字符串,然后与str2进行比较

刘博雅
2023-03-14

运算符绑定的优先级高于==运算符,因此您的表达式是:

"MAGIC Using == for final :" + str1==str2
("MAGIC Using == for final :" + str1)==str2
(a new String object created for the comparison can't)==str2
false
 类似资料:
  • 我正在从兔子队列接收数据,我正试图将其转换为。消息始终以SOH字符开头,并始终以VT字符结尾,后跟ETX字符。数据接收正确,打印到控制台的字节数组正确。问题是,在转换为

  • 我试试密码 <代码>系统。出来println(16 并且输出为2! 但是这是如何工作的?语法是什么?

  • 问题内容: 我想打印任何文本而不在Java中使用system.out.println()吗?如果可以,那么怎么办?任何想法。 问题答案:

  • 我有一个在Wildfly 8.*上运行的Spring Web应用程序,由于某种原因,它不会打印到控制台。我看到所有控制台日志和堆栈跟踪都很好,但系统消息只是没有出现。 问题可能出在我的log4j设置上,所以我会发布该配置; 我以前在JBoss 7.1上运行过应用程序,但是没有这个问题,所以我真的不知道可能出了什么问题。 随意询问我的任何其他配置不确定需要什么。 编辑: 这是我的独立部署文件夹中的日

  • 我如何才能使打印在控制台中的消息不是直接发出,而是一点一点地发出