java的String=a; a==null和a.equals(null)這兩個判斷有什麼區別
1、String 的==與equal()
在對字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數時候==跟equal()的結果都是相同的。這是因為String對象是不變模式的,如果你不是明確地new一個String對象,Java對於String對象的保存默認的是會把新生成的String 對象放到一個緩衝區,然後每次判斷緩衝區中是否已經有了這個對象,如果有了,那麼後建立的同樣字符值的String對象也會指向最初建立是該字符值對象的地址。也就是説字符值相同的`時候,大多數情況下地質也是相同的。==與equal()效果是相同的。但是當對象是str = new String(“abc”)生成的而不是直接str = “abc”這樣賦值生成,或者經過了一些字符串連接處理,或者通過StringBuffer等對象生成,都會在內存中開闢新的地址的,這個時候==和 equal()結果是不同的。
是不是稍微有些複雜?這裏需要一些關於內存,堆棧,對象保存方面的理解。我不想糾纏於這個問題的討論。如果不能理解,那麼只要記住如果你想要判斷兩個字符串的字符值是否相等,沒有別的要求的時候,那麼請使用equal()而不是==,至於什麼時候需要使用==,我想當你需要的時候,你自然就會明白了。實際上,對於字符串的判斷,我們很少需要用==的。
2、關於l(“abc”)和”abc”l(str)
這個好像爭論也挺多的,第一種常量寫在後面可能符合大多數人的習慣,也符合我們的邏輯思維。但是需要多一個str是否為null的判斷。否則這裏是有可能出現異常的。而後一種寫法不需要多做關於是否為null這個判斷。就我個人喜好來説,比較喜歡後一種寫法。
3、關於String的null
/**
* 測試java的String為null 的情況
* create date:2009-6-3
* author:Administrator
*
*/
public static void testNull(){
String a= null,b = null,c="呵呵";
tln(a == null);
tln(a+b+c);
}
方法運行結果:
true
nullnull呵呵
所以大家要注意了做字符串合併操作時,別忘記判斷null,否則結果會不太讓你爽啊!
-
java語言的接口與繼承
Java是一個面向對象的語言。對程序員來説,這意味着要注意應中的數據和操縱數據的方法,而不是嚴格地用過程來思考。下面是小編分享的java語言的接口與繼承,一起來看一下吧。大多數人認為,接口的意義在於頂替多重繼承。眾所周知Java沒有c++那樣多重繼承的機制,但是卻...
-
java的應用範圍
Java是一種可以撰寫跨平台應用軟件的面向對象的程序設計語言。自從sun公司推出java語言以來,java極大受到開發者和企業的歡迎,在互聯網如此發達的今天,java語言得到了廣泛的應用,比如網站,遊戲,電子商務等,java語言在這些領域開發佔很大的比例。在全球雲計算和移動互...
-
講述java中enum的用法
本文實例講述了java中enum的用法。分享給大家供大家參考。具體分析如下:1.基本用法複製代碼代碼如下:enumDay{SUNDAY,MONDAY,TUESDAY,WENDSDAY,THURSDAY,FRIDAY,SATURDAY;}枚舉是常量,所以應該用大寫。2.枚舉是對象枚舉隱含地繼承了,所以它具有的.屬性和方法。遍...
-
java中set接口的使用方法
java中的set接口有如下的特點:不允許出現重複元素;集合中的元素位置無順序;有且只有一個值為null的元素。因為java中的set接口模仿了數學上的set抽象,所以,對應的數學上set的特性為:互異性:一個集合中,任何兩個元素都認為是不相同的,即每個元素只能出現一次。無序性:一個...
相關文章
- JavaScript中null和undefined的異同
- 雅思閲讀模擬試題:Sun's fickle heart may leave us cold
- 八年級年級Lesson11Lily learns about China英語家庭作業
- java基礎之final、finally和finalize的區別
- A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英語作文
- Unit2 My schoolbag A Let’s learn教學反思
- 英語閲讀:African Union Leaders Talk Mali, Chinese Investmen
- whats your plan for dragon boat festival英語作文
- 英語作文:Gulangyu,A fairyland in the world
- Unit3Onlinetravel(SpeakupandStudyskills)學案