String的用法问题

afunx 2009-10-05 12:02:49
public class Example5_1 {
public static void main(String args[])
{
String s1,s2;
s1=new String("We are students");
s2=new String("We are students");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
String s3,s4;
s3="how are you";
s4="how are you";
System.out.println(s3.equals(s4));
System.out.println(s3==s4);
}

}
结果是什么?
为什么呢?
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿_布 2009-10-05
  • 打赏
  • 举报
回复
equals方法比较的是值是否相等,==比较的是引用的内容地址。
new 会重新分配内存
直接赋值jvm会首先到字符串池中去查找有没有相同的字符串,有的话就取得它的引用,所以相等。
justinavril 2009-10-05
  • 打赏
  • 举报
回复
equals比较的是字符串的内容 也就是每个字符都一样 那么返回true;但是在Java中String是对象 如果两个String对象是相等的“==”,那么它们指向是的同一对象。请看:对于String的认识
afunx 2009-10-05
  • 打赏
  • 举报
回复
我更关心的是原因,可以解释一下吗?
结果只要拿代码复制一下去运行就可以了啊。
阿_布 2009-10-05
  • 打赏
  • 举报
回复
结果:
true
false
true
true

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧