最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文搞懂String的intern()方法

 更新時間:2023年06月02日 10:16:57   作者:一一哥Sun  
這篇文章主要給大家介紹String的intern()方法,文中有詳細的代碼示例,感興趣的小伙伴讓我們一起來看看這究竟是個什么玩意

一. 先來一段代碼

我們先上一段代碼:

String str1 = new StringBuilder("你好").append("renr").toString();
String str2 = "你好renr";
System.out.println(str3 == str4);

大家猜猜上面代碼的輸出結(jié)果是什么?true還是false?

321,你猜對了嗎?

這里的輸出結(jié)果是:false!

二. String的intern()方法詳解

上面的結(jié)果是為什么呢?為了搞清楚這個問題,我們看看需要了解一下intern()方法的內(nèi)部原理。其實大家可以將String的intern()方法 , 理解為 個可以 手動將字符串加入常量池中的方法。

在上述代碼中,我們知道 "=="比較的是對象的地址, 輸出 結(jié)果為 false, 這就 說明str1和str2的地址不同。而str 2 引用的字符串"你好renr"肯定是放在常量池中的,這就說明str1引用的字符串不在常量池中,而是在堆中。 對于上述現(xiàn)象,我們可以按照下圖所示進行理解:

三. 修改代碼后再看結(jié)果

我們可以對上述代碼進行修改,接著再來看一下執(zhí)行結(jié)果,代碼如下:

String str3 = new StringBuilder("你好").append("renr").toString();
System.out.println(str3.intern() == str3);
String str4 = "你好renr";
System.out.println(str3 == str4);

現(xiàn)在你再來猜一下上面代碼的輸出結(jié)果,會分別輸出什么?

321,我們來公布結(jié)果,這次輸出的結(jié)果為:

true true

來來來,再來給你解釋一下:

執(zhí)行str3.intern()后,str3==str4返回true,這就說明str3和str4引用了同一對象 地址

上面我們提到,new StringBuilder("你好").append("renr").toString()得到的字符串存放在堆中,執(zhí)行str3.intern()后,會將str3的對象引用放入 常量池中 ( jdk1.7后 ) 。

而對str4進行賦值時,發(fā)現(xiàn)常量池中已經(jīng)有了該字符串的引用,則 將該引用值直接賦值給str4, 所以 str4也指向 str3的對象 ,故 最后輸出 結(jié)果為 true

四. 總結(jié)

通過對上面代碼的解釋,現(xiàn)在你搞懂了intern()方法的執(zhí)行原理了嗎?現(xiàn)在請你要記得,intern()的作用就是就是直接將字符串添加到常量池!好了,本篇到此為止。

以上就是一文搞懂String的intern()方法的詳細內(nèi)容,更多關(guān)于String intern()方法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot與vue實現(xiàn)簡單的CURD過程詳析

    springboot與vue實現(xiàn)簡單的CURD過程詳析

    這篇文章主要介紹了springboot與vue實現(xiàn)簡單的CURD過程詳析,圍繞springboot與vue的相關(guān)資料展開實現(xiàn)CURD過程的過程介紹,需要的小伙伴可以參考一下
    2022-01-01
  • FeignClient如何脫離eureka自定義URL

    FeignClient如何脫離eureka自定義URL

    這篇文章主要介紹了FeignClient如何脫離eureka自定義URL,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 深度解析Spring Security 中的 SecurityFilterChain核心功能

    深度解析Spring Security 中的 SecurityFilterChain核心功

    SecurityFilterChain通過組件化配置、類型安全路徑匹配、多鏈協(xié)同三大特性,重構(gòu)了Spring Security的配置范式,接下來通過本文給大家介紹Spring Security中的SecurityFilterChain核心功能,感興趣的朋友一起看看吧
    2025-08-08
  • Spring七大組件是哪些以及作用

    Spring七大組件是哪些以及作用

    這篇文章主要介紹了Spring七大組件是哪些以及作用,幫助剛接觸spring的朋友更快理解,如果有說的不對的地方還請指正,需要的朋友可以參考下
    2023-03-03
  • Spring + Mybatis 項目實現(xiàn)動態(tài)切換數(shù)據(jù)源實例詳解

    Spring + Mybatis 項目實現(xiàn)動態(tài)切換數(shù)據(jù)源實例詳解

    這篇文章主要介紹了Spring + Mybatis 項目實現(xiàn)動態(tài)切換數(shù)據(jù)源的相關(guān)資料,需要的朋友參考下吧
    2017-04-04
  • SpringBoot與MyBatis-Plus的高效集成方式

    SpringBoot與MyBatis-Plus的高效集成方式

    本文詳細介紹了如何在SpringBoot項目中整合MyBatis-Plus,包括環(huán)境準(zhǔn)備、實體類與Mapper接口定義、CRUD操作、條件構(gòu)造器、事務(wù)管理、安全性考慮、性能優(yōu)化、版本兼容性與遷移、實際應(yīng)用場景和監(jiān)控與日志等內(nèi)容,通過這些步驟,讀者可以掌握MyBatis-Plus的高級特性和最佳實踐
    2024-11-11
  • Java static(靜態(tài)變量)和私有化功能與用法分析

    Java static(靜態(tài)變量)和私有化功能與用法分析

    這篇文章主要介紹了Java static(靜態(tài)變量)和私有化功能與用法,結(jié)合具體實例形式分析了Java static(靜態(tài)變量)和私有化的相關(guān)概念、原理、使用方法及操作注意事項,需要的朋友可以參考下
    2019-07-07
  • Mybatis注解sql時出現(xiàn)的一個錯誤及解決

    Mybatis注解sql時出現(xiàn)的一個錯誤及解決

    這篇文章主要介紹了Mybatis注解sql時出現(xiàn)的一個錯誤及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java中單例模式詳解

    Java中單例模式詳解

    這篇文章主要介紹了Java中單例模式詳解,單例模式包括了懶漢式單例、餓漢式單例、登記式單例三種,想要了解的朋友可以了解一下。
    2016-11-11
  • Java函數(shù)式編程(二):集合的使用

    Java函數(shù)式編程(二):集合的使用

    這篇文章主要介紹了Java函數(shù)式編程(二):集合的使用,本文著重講解了遍歷列表的一些方法,需要的朋友可以參考下
    2014-09-09

最新評論

雷山县| 贵溪市| 遂川县| 吴忠市| 广河县| 宜黄县| 达拉特旗| 永和县| 客服| 定安县| 甘洛县| 萨迦县| 拉萨市| 宜良县| 西平县| 东宁县| 资兴市| 南城县| 从江县| 河西区| 山东省| 兴业县| 阿图什市| 临澧县| 灯塔市| 千阳县| 乌兰察布市| 宁远县| 十堰市| 内丘县| 乳源| 安图县| 崇仁县| 大洼县| 丰镇市| 且末县| 临夏市| 定州市| 渝北区| 陇川县| 滕州市|