概念
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語句的使用方法很簡單,基本格式是 關鍵字...