首页 新闻 会员 周边

结果是什么?

0
悬赏园豆:10 [待解决问题]

public class Testeguals {
public static void main(Stringl args) throws IOException{
String[] a=new String[5];
boolean b1,b2,b3;
String s1="Hello";
String s2="Hello";
String s3=new String("Hello");
b1=(s1s2);
b2=(s1s3);
b3=s1.equals(s3);
System.outprintln(s1s2);
System.outprintln(s1s3);
System.out.println(s1.equals(s3));

程序运行的结果:
(1)_____
(2)____________
(3)_____________

peir的主页 peir | 初学一级 | 园豆:105
提问于:2022-12-15 23:39
< >
分享
所有回答(1)
0

首先,你的代码中存在一些错误,我将先对其进行修正,然后再解释其运行结果。

修正后的代码如下:

java
public class TestEquals {
public static void main(String[] args) throws IOException {
String[] a = new String[5];
boolean b1, b2, b3;
String s1 = "Hello";
String s2 = "Hello";
String s3 = new String("Hello");
b1 = (s1.equals(s2));
b2 = (s1.equals(s3));
b3 = s1.equals(s3);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
}
}
现在,我们来看看代码的输出结果:

s1.equals(s2):由于s1和s2的内容都是"Hello",所以它们是相等的。因此,s1.equals(s2)的结果为true,对应的布尔值b1也为true。
s1.equals(s3):这里,s1的内容是"Hello",而s3是通过new String("Hello")创建的新字符串。尽管它们的内容相同,但它们在内存中的地址不同。因此,s1.equals(s3)的结果为false,对应的布尔值b2也为false。
s3.equals(s1):这与上面一个比较是相反的。因为s3和s1在内存中的地址不同(尽管它们的内容相同),所以s3.equals(s1)的结果为false,对应的布尔值b3也为false。
因此,程序的输出结果为:

css
true
false
false
true
false
false

ycyzharry | 园豆:25651 (高人七级) | 2024-01-18 23:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册