equals 方法與「 」的使用以及注意事項

2021-08-02 04:35:34 字數 1696 閱讀 9825

概念

equals()方法是物件比較函式,按照物件比較,系統預設四個類覆寫該方法:integer , string,date,file

沒有覆寫equals()方法的類會呼叫object的equals()方法,object類的equals()方法直接用==實現

比較過程:

1.首先判斷兩個比較物件型別是否相同

如果不同返回false

2.如果相同繼續判斷物件內容是否相同

如果相同返回true

如果不同返回false

使用方法以及注意事項

e.g.:

string s1=new string("aaa");

string s2=new string("aaa");

s1.equals(s2);

即使s1與s2並不是同乙個物件,但s1與s2的型別相同並且內容一樣,此時equals方法返回值為true。

string s1=new string("aaa");

string s2=new string("bbb");

s1.equals(s2);

s1與s2的型別相同並但內容不一樣,此時equals方法返回值為false。

string s1=null;

string s2=new string("bbb");

s1.equals(s2);

此時會丟擲nullpointerexception異常,在做equals比較的時候一定要確保呼叫equals方法的物件不為空。

概念

「==」是等值比較,比較的是變數的內容

1.當比較物件為基本資料型別時,比較的是資料的大小

2.當比較物件為引用型別時,比較的是引用型別中存放的位址

使用方法以及注意事項

e.g.:

1.

int n1=10;

int n2=10;

n1==n2;

因為n1,n2是基本資料型別,並且資料值相等所以此時返回true。

2.

string s1="aaa";

string s2="aaa";

n1==n2;

由於字串」aaa」建立時是在方法區的常量池中開闢的空間,並且下次使用時可以重複使用,s1,s2指向的位址是相同的,所以判等的結果是true

3.

integer n1=new integer(45);

integer n2=new integer(45);

n1==n2;

n1與n2分別在堆區開闢了空間,兩個變數所指向的位址不同,即使指向位址中的內容相同,判等的結果也是為false。

注意:

integer n1=128;

integer n2=128;

n1==n2;

integer n3=127;

integer n4=127;

n3==n4;

integer包裝型別中存在自動裝箱的情況,當資料範圍在-128~127之間時,建立的物件會在方法區的常量池中開闢空間(可復用),資料超出範圍就會在堆區中開闢空間,由於指向不同物件所以n1==n2判等的結果為false,n3與n4指向常量池同一位址所以判等結果為true。

xilinx FPGA IOB約束使用以及注意事項

在xilinx fpga中,iob是位於io附近的暫存器,是fpga上距離io最近的暫存器,同時位置固定。當你輸入或者輸出採用了iob約束,那麼就可以保證從io到達暫存器或者從暫存器到達io之間的走線延遲最短,同時由於io的位置是固定的,即存在於io附近,所以每一次編譯都不會造成輸入或者輸出的時序發...

mysql記憶體使用以及優化中需要的幾點注意

1 從記憶體中讀取資料是微秒級別的。而從磁碟讀則是毫秒級別的。二者相差乙個數量級。所以想優化資料庫,第乙個要做到的就是優化io。2 key buffer size global 設定的記憶體區域大小快取了myisam表的索引。由於myisam只快取索引在記憶體中,並不快取資料在記憶體,所以如果記憶體...

global的作用以及使用方法

在編寫程式的時候,如果想為乙個在函式外的變數重新賦值,並且這個變數會作用於許多函式中時,就需要告訴python這個變數的作用域是全域性變數。此時用global語句就可以變成這個任務,也就是說沒有用global語句的情況下,是不能修改全域性變數的。用global語句的使用方法很簡單,基本格式是 關鍵字...