gpt4 book ai didi

java - 比较命令行参数引用返回 false 而字符串数组返回 true

转载 作者:行者123 更新时间:2023-11-29 06:32:37 25 4
gpt4 key购买 nike

<分区>

目前我正在处理字符串操作,在做演示时我发现了一些不同的行为。

下面是我的代码。

public class HelloWorld{

public static void main(String []args){
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

String strArray[] = {"Hello","Hello"};
String strArray1[] = new String[] {"Hello","Hello"};

System.out.println("str1==str2:: "+(str1==str2));
System.out.println("str1==str3:: "+(str1==str3));

System.out.println("strArray[0]==strArray[1]:: "+(strArray[0]==strArray[1]));
System.out.println("str1==strArray[1]:: "+(str1==strArray[1]));

System.out.println("strArray1[0]==strArray1[1]:: "+(strArray1[0]==strArray1[1]));
System.out.println("str1==strArray1[1]:: "+(str1==strArray1[1]));

System.out.println("args[0]==args[1]:: "+(args[0]==args[1]));
}

上面代码的输出是。我正在运行传递命令行参数的代码。

java HelloWorld Hello Hello

str1==str2:: true
str1==str3:: false
strArray[0]==strArray[1]:: true
str1==strArray[1]:: true
strArray1[0]==strArray1[1]:: true
str1==strArray1[1]:: true
args[0]==args[1]:: false

这里我有两个问题。

  1. 如果我比较 String str1==str3 的引用,那么它将返回 false,因为 str3 是使用 new String 创建的,所以它不会驻留在 String 池中,那么 str1 如何==strArray1[1] 返回真值??

  2. strArray[0]==strArray[1] 会返回 true,strArray1[0]==strArray1[1] 也会返回 true 那为什么命令行参数 args[0]==args[1 ] 返回假??

请指导。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com