java程序问题:求程序运行结果解释!

程序:publicclassStringDemo{publicstaticvoidmain(String[]args){Strings1="Hello";Strings2... 程序:
public class StringDemo {
public static void main(String[] args) {
String s1="Hello";
String s2="Hello";
String s3=new String("Hello");
String s4=new String("Hello");
//相等否
System.out.println("s1==s2"+(s1==s2));
System.out.println("s3==s4"+(s3==s4));
System.out.println("s1==s3"+(s1==s3));
//值相等否
System.out.println("s1 equals s2"+s1.equals(s2));
System.out.println("s3 equals s4"+s3.equals(s4));
System.out.println("s1 equals s3"+s1.equals(s3));

System.out.println("s1==s2"+s1==s2);
System.out.println("s3==s4"+s3==s4);
System.out.println("s1==s3"+s1==s3);

}

}

结果:
s1==s2true
s3==s4false
s1==s3false
s1 equals s2true
s3 equals s4true
s1 equals s3true
false
false
false
请仔细分析不同,答得好的追加分数
展开
 我来答
潮福开3914
2011-05-10 · TA获得超过482个赞
知道小有建树答主
回答量:301
采纳率:37%
帮助的人:94万
展开全部
首先让我们来看下着4个语句,
String s1="Hello";//先在字符串池中查找是否有值为"Hello"的字符串,没有找到则新建一个 此时 s1指向字符串池中"Hello"
String s2="Hello";//在字符串池中查找字符串,发现存在"Hello"字符串,s2指向字符串池中"Hello" s1和s2指向的内存相同
String s3=new String("Hello");//对于new String() 则是在java的堆中新建一个字符串,他的内存地址不是指向字符串池
String s4=new String("Hello");//同上
对于字符串 == 操作符来说 比较的内存地址值 可以得出
s1==s2true
s3==s4false
s1==s3false
equals()方法则是比较内容值 可以得出 s1 s2 s3 s4的值都是Hello
s1 equals s2true
s3 equals s4true
s1 equals s3true
对于这个则是
System.out.println("s1==s2"+s1==s2);
先进行+操作 然后再比较 上面实际上是 "s1==s2Hello"==s2的比较自然是false
羅朔妮l
2011-05-10 · TA获得超过120个赞
知道答主
回答量:93
采纳率:100%
帮助的人:56.8万
展开全部
s1 s2 指向的是同一个存储地址,所以相同;使用new String ()新建对象后,虽然看上去他们的值相同,但是他们却分配了两个不同的存储空间,使用==比较的时候自然是false,equips比较他们的内容,而不是地址,所以会true。希望帮到你啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beeshow00
2011-05-10 · 超过42用户采纳过TA的回答
知道答主
回答量:99
采纳率:58%
帮助的人:61.2万
展开全部
首先要明白String的初始化对象的原则。s1,s2这种初始化后s1,s2是同一对象而关系运算符“==”是判断两个对象是否是一个,所以输出1 是 false ;s3,s4这种初始化后的s3,s4是两个不同的对象只是值相同而已。 方法.equals是比较对象中的值是否相等,当然如果两个是同一个对象输出也是true。在你第三类输出中,由于没有()所以运算符的顺序是这样的先""+s 得到一个新的对象 然后和后面的 s* 进行== 运算 所以输出都是false
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式