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

java 字符串池的深入理解

 更新時間:2017年08月20日 16:06:37   作者:楊鑫newlfe  
這篇文章主要介紹了java 字符串池的深入理解的相關(guān)資料,這里提供實例代碼幫助大家學(xué)習(xí)理解這部分內(nèi)容,希望大家能夠掌握,需要的朋友可以參考下

java 字符串池的深入理解

字符串池是Java的一個特性,可以通過一段代碼理解。

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"; 這樣的語句時,Java會先在字符串池中尋找是否已經(jīng)存在"Hello"這個字符串,如果沒有,則建立字符串"Hello"對象,然后變量 a 指向這個地址;然后遇到語句String b = "Hello",這時字符串池中已經(jīng)有 "Hello"了,所以直接讓變量b也指向這個地址,省去了重新分配的麻煩。而在Java中,操作符“==”對于兩個基本型來說,是判斷其內(nèi)容是否相同, 對于兩個對象來說,則是判斷其地址是否相同,所以a == b返回 true。那么String c = new String("Hello")又如何處理呢?如果是這種寫法,則不會去訪問字符串池,而是先為變量 c 開辟空間,然后將值寫入空間。所以a == c返回false,c == d同樣返回false。至于String的equals方法,因為它比較的不是對象的地址,而是對象的值,所以都返回true就不奇怪了。

Java虛擬機有一個字符串池,保存著幾乎所有的字符串對象。字符串表達式總是指向字符串池 中的一個對象。使用new操作創(chuàng)建的字符串對象不指向字符串池中的對象但是可以使用intern方法使其指向字符串池中的對象(注:如果池中已經(jīng)有相同的 字符串--使用equals方法確定,則直接返回池中的字符串,否則先將字符串添加到池中,再返回)。池中兩個相等的字符串如果使用“==”來比較將返回 真。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java中四種9*9乘法表的實現(xiàn)方式(附代碼)

    Java中四種9*9乘法表的實現(xiàn)方式(附代碼)

    這篇文章主要介紹了Java中四種9*9乘法表的實現(xiàn)方式(附代碼),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Spring中bean的繼承與抽象代碼示例

    Spring中bean的繼承與抽象代碼示例

    這篇文章主要介紹了Spring中bean的繼承與抽象代碼示例,涉及abstract 屬性,bean實例化,子bean 與普通bean等相關(guān)內(nèi)容,代碼示例中注釋比較詳細,需要的朋友可以參考下。
    2017-09-09
  • 使用SpringSecurity+defaultSuccessUrl不跳轉(zhuǎn)指定頁面的問題解決方法

    使用SpringSecurity+defaultSuccessUrl不跳轉(zhuǎn)指定頁面的問題解決方法

    本人是用springsecurity的新手,今天遇到defaultSuccessUrl不跳轉(zhuǎn)指定頁面的問題,真是頭疼死了,網(wǎng)上找遍了解決方法都解決不了,今天給大家分享使用SpringSecurity+defaultSuccessUrl不跳轉(zhuǎn)指定頁面的問題解決方法,感興趣的朋友一起看看吧
    2023-12-12
  • java Split 實現(xiàn)去除一個空格和多個空格

    java Split 實現(xiàn)去除一個空格和多個空格

    這篇文章主要介紹了java Split 實現(xiàn)去除一個空格和多個空格,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • springboot整合ehcache 實現(xiàn)支付超時限制的方法

    springboot整合ehcache 實現(xiàn)支付超時限制的方法

    在線支付系統(tǒng)需要極高的穩(wěn)定性,在有限的系統(tǒng)資源下,穩(wěn)定性優(yōu)先級要高于系統(tǒng)并發(fā)以及用戶體驗,因此需要合理的控制用戶的支付請求。下面通過本文給大家介紹springboot整合ehcache 實現(xiàn)支付超時限制的方法,一起看看吧
    2018-01-01
  • java中Hibernate的狀態(tài)總結(jié)

    java中Hibernate的狀態(tài)總結(jié)

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java中Hibernate的狀態(tài)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • springmvc使用@notNull注解驗證請求參數(shù)方式

    springmvc使用@notNull注解驗證請求參數(shù)方式

    這篇文章主要介紹了springmvc使用@notNull注解驗證請求參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-01-01
  • 詳解Java二叉排序樹

    詳解Java二叉排序樹

    這篇文章主要介紹了Java二叉排序樹,包括二叉排序樹的定義、二叉排序樹的性質(zhì)、二叉排序樹的插入和查找等,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 基于java中子類的繼承性的應(yīng)用介紹

    基于java中子類的繼承性的應(yīng)用介紹

    本篇介紹了,基于java中子類的繼承性的應(yīng)用。需要的朋友參考下
    2013-05-05
  • Java趣味練習(xí)題之輸出兩個日期之間的相隔天數(shù)

    Java趣味練習(xí)題之輸出兩個日期之間的相隔天數(shù)

    本篇文章介紹了我看到的一個趣味小題目,怎么求得兩個日期之間相隔的天數(shù),以及解決該題目的過程及思路,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下
    2021-10-10

最新評論