“==”和equals()的用法
equals()是java.lang.Object類的方法。
*對于字符串變量來說:==”是比較兩個對象在內存中的首地址;“equals()”是比較字符串中所包含的內容是否相同。
比如:
那么:
s1==s2 是 false //兩個變量的內存地址不一樣,也就是說它們指向的對象不 一樣,
故不相等。
s1.equals(s2) 是 true //兩個變量的所包含的內容是abc,故相等。
注意(1):
如果: StringBuffer s1 = new StringBuffer(“a”);
StringBuffer s2 = new StringBuffer(“a”);
結果: s1.equals(s2) //是false
解釋:StringBuffer類中沒有重新定義equals這個方法,因此這個方法就來自Object類,
而Object類中的equals方法是用來比較“地址”的,所以等于false.
注意(2):
對于s3和s4來說,有一點不一樣要引起注意,由于s3和s4是兩個字符
串常量所生成的變量,其中所存放的內存地址是相等的,
所以s3==s4是true(即使沒有s3=s4這樣一個賦值語句)
對于非字符串變量來說,”==”和”equals”方法的作用是相同的都是用來比較其對象在堆內存的首地址,即用來比較兩個引用變量是否指向同一個對象。
比如:
那么:obj1==obj2是false
obj1.equals(obj2)是false
但是如加上這樣一句:obj1=obj2;
那么 obj1==obj2 是true
obj1.equals(obj2) 是true
注:(1)如果是基本類型比較,那么只能用==來比較,不能用equals; (2)對于基本類型的包裝類型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用變量,==是比較地址的,而equals是比較內容的。
——————我是不及格的分隔線———————-
擴展:java.lang.String類中isEmpty()方法的使用,作用:判斷是否為空串,length()等于0返回true,否則返回false。
String a = "helllo"; System.out.println(a.isEmpty()); //結果為false String b = ""; System.out.println(b.isEmpty()); //結果為true String c = null; System.out.println(c.isEmpty()); //結果報空指針異常,java.lang.NullPointerException.總結
以上是生活随笔為你收集整理的“==”和equals()的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++利用windows api遍历指定
- 下一篇: MySQL中的char与varchar详