再说“==”
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
问题点数:20、回复次数:5Top
1 楼ChDw(米)回复于 2003-08-01 05:19:33 得分 0
== 表示判断两个对象是否相同,两个对象都指向同一个地址返回True
equals 判断两个对象是否相等,String重载了该方法,变成判断是否所以字符都相等Top
2 楼possible_Y(████本人签名需要刮开,方可看到 )回复于 2003-08-01 06:48:22 得分 0
要比较对象的值是否相等要用equals ,
==是比较对象的引用是否一样
但是对于基本的数据类型,==和equals就一样了,都是比较值是否相等Top
3 楼mingjob(小一号)回复于 2003-08-01 08:34:29 得分 0
See:
http://expert.csdn.net/Expert/topic/2045/2045573.xml?temp=.6041986Top
4 楼eastjy()回复于 2003-08-01 14:52:48 得分 0
偶的问题主要是 cc和dd 为啥能 == ,对于String类, String cc=“hi”,
和String a=new String(“hi”) 为啥不一样呐
Top
5 楼cuihao(java_豆)回复于 2003-08-01 15:05:04 得分 20
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"; 无论多少个 都是指同一地址
Top




