再说“==”

eastjy 2003-08-01 04:20:28
class QQ
{
public static void main(String[] args)
{
String a=new String("hi");
String b=new String("hi");

String cc="hi";
String dd="hi";

System.out.println(a==b);
System.out.println(a.equals(b));

System.out.println(cc==dd);
System.out.println(cc.equals(dd));

}
}
结果:false true true true
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingjob 2003-08-01
  • 打赏
  • 举报
回复
See:

http://expert.csdn.net/Expert/topic/2045/2045573.xml?temp=.6041986
possible_Y 2003-08-01
  • 打赏
  • 举报
回复
要比较对象的值是否相等要用equals ,
==是比较对象的引用是否一样

但是对于基本的数据类型,==和equals就一样了,都是比较值是否相等
ChDw 2003-08-01
  • 打赏
  • 举报
回复
== 表示判断两个对象是否相同,两个对象都指向同一个地址返回True
equals 判断两个对象是否相等,String重载了该方法,变成判断是否所以字符都相等
cuihao 2003-08-01
  • 打赏
  • 举报
回复
String cc="hi";
String dd="hi";
在内存里cc dd都是指的是一个地址空间
String a=new String("hi");
String b=new String("hi");
a b指的是两个不同的地址空间
new 的意思就是新分配一块空间

如果不用new 象这样String cc="hi"; 无论多少个 都是指同一地址
eastjy 2003-08-01
  • 打赏
  • 举报
回复
偶的问题主要是 cc和dd 为啥能 == ,对于String类, String cc=“hi”,
和String a=new String(“hi”) 为啥不一样呐

62,616

社区成员

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

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