Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
equals() and ==

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

l          equals()==

比較物件內容

比較是否同一物件

equals()

==

 

String str1 = new String(“abc”);

String str2 = new String(“abc”);

String str3 = str1;

String str4 = “abc”;

String str5 = “abc”;

 

 


str1 / str2

str1 / str3

str4 / str5

str1 / str4

Equals

true

true

true

true

==

false

true

true

False

 

l           String str = "abc" String str = new String("abc")在做”==”得到的結果不同。

l     long i = 1; double j = 1; // i == j true(因為primitive data type,值相等即為true)

l           Long a = new Long(3L); Long b = new Long(3L); Double x = new Double(3.0); //a == bfalse(因為reference type,非同一個物件了)//a == xcompile err(ax無繼承關係無法convertible)

l           ==的左右兩邊若為不相容的型別轉換,則會發生compiler errors,但若是equals,當物件不相同時equal()會回傳false,不會造成編譯錯誤(equals Float object and Double object will always return false)

l           compares(equals) a Float object and a Double object which will always return false

l           每個java class都有一個”equals()”method,這個method是使用”==”來比較兩個reference var所存的值(即是否指向一物件)若要比較content是否相同,必須override equals() method,同時也必須override定義於Object class”hashcode()”method,否則java collection API操作這個classobject時會錯。

l           StringDateFile8wrapper classes都已override equals() method

如果hashCode值相同,那object”可能相同(equal);如果hashCode值不相同,那object”一定不相同。

来自于:【 Garfield 的 SCJP 閱讀筆記 】




相关文章

相关软件