JAVA基本概念请教

Emily_88

新手上路
VIP
注册
2008-06-14
消息
284
荣誉分数
52
声望点数
38
JAVA专家们,哪位能给简洁的总结一下

1)==和equals的区别

”==比较地址,euqals比较内容“ 这样解释对不?

2)!equals()和!=有啥区别

谢了。
 
no, they are complete different things.

at most of case equals() is a function with return of boolean value.
you can write your own equals function such as

public boolean equals(int newValue){
return (existingValue==newValue);
}
 
== 是比地址吧?

equals() 是method, 从Object class就有这个method. 大部分java的自带的class都有override这个method, 往往是比value.
但如果没有override,比如你自己定义的class, 那就和==一样.
 
object 之间,== 只比较地址,如果两个object的地址不一样,结果为false
比如:
String haha = new String("haha");
String ahah = "ha" + "ha";
(ahah == haha) 的判断结果为false
haha.equals(ahah)的判断结果为true
 
object 之间,== 只比较地址,如果两个object的地址不一样,结果为false
比如:
String haha = new String("haha");
String ahah = "ha" + "ha";
(ahah == haha) 的判断结果为false
haha.equals(ahah)的判断结果为true
对,补充一点. String的equals是比value,原因是String class override了equals method.
大部分Java core class都有override equals.
 
Some guys are interested in any discussion about

"synchronized"

"wait/sleep/notify"

and
"ReentrantReadWriteLock"
 
恩,==只比较地址,当你用同样方式创建两个OBJECT的时候,他们就不==,因为地址不是指向同一个地方。但是EQUALS()的时候却可是是TRUE的,因为他们的值相当。而且作为一个METHOD,EQUALS()可以根据需要重新定义。比如两个OBJECT的某几个VALUE相同,你就可以判断他们是EQUALS()为TRUE,而对==无法做此类处理。
 
后退
顶部