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,否則結果會不太讓你爽啊!
-
linux下執行java程式的sh指令碼教程
文章主要介紹了linux下執行java程式的sh指令碼,僅供參考,但是設定的時候環境變數是最重要的,我就是環境變數一直不對,總是按網上查到的來,不明白怎麼回事,才一直出錯,其實環境變數就是你要執行的java程式所在的位置。接下來是小編為大家收集的linux下執行java程式的sh腳...
-
Java中final關鍵字用法的講解
1.finalvariablefinalvariable就是一個常量,一旦被初始化就不可以被改變。classTest1{finaldoublePI=3.14;//常量的名稱最好大寫publicTest1(){PI=3.14;}voidtest(){tln("PIis:"+PI);}publicstaticvoidmain(String[]args){Test1t=newTest1();();}}輸出:PIis:3.14...
-
java知識點詳細總結大綱
沒有風浪,便沒有勇敢的弄潮兒;沒有荊棘,也沒有不屈的開拓者。以下是小編為大家搜尋整理了java知識點詳細總結,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!一:java概述:1991年Sun公司的JamesGosling等人開始開發名稱為Oak的語言,希望用於控制...
-
Java基本元素詳解
生活呆以是甜的,也可以是苦的,但不能是沒味的。你可以勝利,也可以失敗,但你不能屈服,以下是小編為大家搜尋整理了Java基本元素詳解,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!第二章基本元素第一章總結:一平臺&JDK&JRE&JVM&A...
相關文章
- java基礎之final、finally和finalize的區別
- JavaScript中null和undefined的異同
- 雅思閱讀模擬試題:Sun's fickle heart may leave us cold
- A Lifeguard at Johns Beach Saved a Drowning Child,A Lifeguar英語作文
- 英語閱讀:African Union Leaders Talk Mali, Chinese Investmen
- whats your plan for dragon boat festival英語作文
- 八年級年級Lesson11Lily learns about China英語家庭作業
- Unit2 My schoolbag A Let’s learn教學反思
- Unit3Onlinetravel(SpeakupandStudyskills)學案
- 英語作文:Gulangyu,A fairyland in the world