欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java String 類(lèi)的一些理解 關(guān)于==、equals、null

 更新時(shí)間:2009年06月04日 02:29:47   作者:  
在對(duì)字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數(shù)時(shí)候==跟equal()的結(jié)果都是相同的。
1、String 的==與equal()
在對(duì)字符串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字符值是否相同。大多數(shù)時(shí)候==跟equal()的結(jié)果都是相同的。這是因?yàn)镾tring對(duì)象是不變模式的,如果你不是明確地new一個(gè)String對(duì)象,Java對(duì)于String對(duì)象的保存默認(rèn)的是會(huì)把新生成的String 對(duì)象放到一個(gè)緩沖區(qū),然后每次判斷緩沖區(qū)中是否已經(jīng)有了這個(gè)對(duì)象,如果有了,那么后建立的同樣字符值的String對(duì)象也會(huì)指向最初建立是該字符值對(duì)象的地址。也就是說(shuō)字符值相同的時(shí)候,大多數(shù)情況下地質(zhì)也是相同的。==與equal()效果是相同的。但是當(dāng)對(duì)象是str = new String(“abc”)生成的而不是直接str = “abc”這樣賦值生成,或者經(jīng)過(guò)了一些字符串連接處理,或者通過(guò)StringBuffer等對(duì)象生成,都會(huì)在內(nèi)存中開(kāi)辟新的地址的,這個(gè)時(shí)候==和 equal()結(jié)果是不同的。
是不是稍微有些復(fù)雜?這里需要一些關(guān)于內(nèi)存,堆棧,對(duì)象保存方面的理解。我不想糾纏于這個(gè)問(wèn)題的討論。如果不能理解,那么只要記住如果你想要判斷兩個(gè)字符串的字符值是否相等,沒(méi)有別的要求的時(shí)候,那么請(qǐng)使用equal()而不是==,至于什么時(shí)候需要使用==,我想當(dāng)你需要的時(shí)候,你自然就會(huì)明白了。實(shí)際上,對(duì)于字符串的判斷,我們很少需要用==的。

2、關(guān)于str.equal(“abc”)和”abc”.equal(str)
這個(gè)好像爭(zhēng)論也挺多的,第一種常量寫(xiě)在后面可能符合大多數(shù)人的習(xí)慣,也符合我們的邏輯思維。但是需要多一個(gè)str是否為null的判斷。否則這里是有可能出現(xiàn)異常的。而后一種寫(xiě)法不需要多做關(guān)于是否為null這個(gè)判斷。就我個(gè)人喜好來(lái)說(shuō),比較喜歡后一種寫(xiě)法。

3、關(guān)于String的null

/**
* 測(cè)試java的String為null 的情況
* create date:2009-6-3
* author:Administrator
*
*/
public static void testNull(){
String a= null,b = null,c="呵呵";
System.out.println(a == null);
System.out.println(a+b+c);
}
方法運(yùn)行結(jié)果:
true
nullnull呵呵
所以大家要注意了做字符串合并操作時(shí),別忘記判斷null,否則結(jié)果會(huì)不太讓你爽??!

相關(guān)文章

  • springboot驗(yàn)證碼生成以及驗(yàn)證功能舉例詳解

    springboot驗(yàn)證碼生成以及驗(yàn)證功能舉例詳解

    登錄注冊(cè)是大部分系統(tǒng)需要實(shí)現(xiàn)的基本功能,同時(shí)也會(huì)對(duì)登錄驗(yàn)證增加需求,下面這篇文章主要給大家介紹了關(guān)于springboot驗(yàn)證碼生成以及驗(yàn)證功能的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Java遍歷起止日期中間的所有日期操作

    Java遍歷起止日期中間的所有日期操作

    這篇文章主要介紹了Java遍歷起止日期中間的所有日期操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • SpringBoot設(shè)置首頁(yè)(默認(rèn)頁(yè))跳轉(zhuǎn)功能的實(shí)現(xiàn)方案

    SpringBoot設(shè)置首頁(yè)(默認(rèn)頁(yè))跳轉(zhuǎn)功能的實(shí)現(xiàn)方案

    這篇文章主要介紹了SpringBoot設(shè)置首頁(yè)(默認(rèn)頁(yè))跳轉(zhuǎn)功能,本文通過(guò)兩種方案,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Spring中的PathVariable注釋解析

    Spring中的PathVariable注釋解析

    這篇文章主要介紹了Spring中的PathVariable注釋用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java編程cas操作全面解析

    Java編程cas操作全面解析

    這篇文章通過(guò)實(shí)例,解析了Java編程中cas操作的概念、原理以及用法,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-09-09
  • intellij idea14打包apk文件和查看sha1值

    intellij idea14打包apk文件和查看sha1值

    這篇文章主要為大家詳細(xì)介紹了intellij idea14打包apk文件和查看sha1值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • java8新特性 stream流的方式遍歷集合和數(shù)組操作

    java8新特性 stream流的方式遍歷集合和數(shù)組操作

    這篇文章主要介紹了java8新特性 stream流的方式遍歷集合和數(shù)組操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • MySQL數(shù)據(jù)文件直接通過(guò)拷貝備份與恢復(fù)的操作方法

    MySQL數(shù)據(jù)文件直接通過(guò)拷貝備份與恢復(fù)的操作方法

    這篇文章主要介紹了MySQL數(shù)據(jù)文件直接通過(guò)拷貝備份與恢復(fù)的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Java中數(shù)組與集合的相互轉(zhuǎn)換實(shí)現(xiàn)解析

    Java中數(shù)組與集合的相互轉(zhuǎn)換實(shí)現(xiàn)解析

    這篇文章主要介紹了Java中數(shù)組與集合的相互轉(zhuǎn)換實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 解決CollectionUtils.isNotEmpty()不存在的問(wèn)題

    解決CollectionUtils.isNotEmpty()不存在的問(wèn)題

    這篇文章主要介紹了解決CollectionUtils.isNotEmpty()不存在的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論