今天就跟大家聊聊有關(guān)java中的字符串池是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)服務(wù),我們努力開拓更好的視野,通過(guò)不懈的努力,創(chuàng)新互聯(lián)建站贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),成都小程序開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫(kù)的技術(shù)開發(fā)工程師。
字符串池是Java的一個(gè)特性,可以通過(guò)一段代碼理解。
String a = "Hello"; String b = "Hello"; String c = new String("Hello"); String d = new String("Hello"); System.out.println(a == b); System.out.println(b == c); System.out.println(c == d); System.out.println(a.equals(b)); System.out.println(b.equals(c)); System.out.println(c.equals(d));
結(jié)果是true,false,false,true,true,true。
這里就涉及到字符 串池。“字符串池”,是Java為了提高內(nèi)存利用率而采用的措施:當(dāng)遇到String a = "Hello"; 這樣的語(yǔ)句時(shí),Java會(huì)先在字符串池中尋找是否已經(jīng)存在"Hello"這個(gè)字符串,如果沒有,則建立字符串"Hello"對(duì)象,然后變量 a 指向這個(gè)地址;然后遇到語(yǔ)句String b = "Hello",這時(shí)字符串池中已經(jīng)有 "Hello"了,所以直接讓變量b也指向這個(gè)地址,省去了重新分配的麻煩。而在Java中,操作符“==”對(duì)于兩個(gè)基本型來(lái)說(shuō),是判斷其內(nèi)容是否相同, 對(duì)于兩個(gè)對(duì)象來(lái)說(shuō),則是判斷其地址是否相同,所以a == b返回 true。那么String c = new String("Hello")又如何處理呢?如果是這種寫法,則不會(huì)去訪問字符串池,而是先為變量 c 開辟空間,然后將值寫入空間。所以a == c返回false,c == d同樣返回false。至于String的equals方法,因?yàn)樗容^的不是對(duì)象的地址,而是對(duì)象的值,所以都返回true就不奇怪了。
Java虛擬機(jī)有一個(gè)字符串池,保存著幾乎所有的字符串對(duì)象。字符串表達(dá)式總是指向字符串池 中的一個(gè)對(duì)象。使用new操作創(chuàng)建的字符串對(duì)象不指向字符串池中的對(duì)象但是可以使用intern方法使其指向字符串池中的對(duì)象(注:如果池中已經(jīng)有相同的 字符串--使用equals方法確定,則直接返回池中的字符串,否則先將字符串添加到池中,再返回)。池中兩個(gè)相等的字符串如果使用“==”來(lái)比較將返回 真。
看完上述內(nèi)容,你們對(duì)java中的字符串池是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
文章名稱:java中的字符串池是什么
分享URL:http://www.chinadenli.net/article44/gcijee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、做網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、云服務(wù)器、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)