String s = new String('a ') 到底產(chǎn)生幾個(gè)對(duì)象
老生常談的一個(gè)梗,到2020了還在爭(zhēng)論,你們一天天的,哎哎哎,我不是針對(duì)你一個(gè),我是說在座的各位都是人才!

上圖紅色的這3個(gè)箭頭,對(duì)于通過new產(chǎn)生一個(gè)字符串(”宜春”)時(shí),會(huì)先去常量池中查找是否已經(jīng)有了”宜春”對(duì)象,如果沒有則在常量池中創(chuàng)建一個(gè)此字符串對(duì)象,然后堆中再創(chuàng)建一個(gè)常量池中此”宜春”對(duì)象的拷貝對(duì)象。
也就是說準(zhǔn)確答案是產(chǎn)生了一個(gè)或兩個(gè)對(duì)象,如果常量池中原來沒有 ”宜春” ,就是兩個(gè)。反之就是一個(gè)。
是的!如果面試官問到,回答一個(gè)或兩個(gè)即可,但是…畢竟…畢竟
畢竟我和各位都是人才,java知識(shí)底蘊(yùn)不能如此短淺,這題還沒謝幕我們還能對(duì)面試官多嗶嗶幾句:字符串常量池在不同版本的jvm中可能位置不同
那么String s=new String("a"+"b");創(chuàng)建了幾次對(duì)象?
當(dāng)jvm 看到 "a","b"時(shí)候 各創(chuàng)建了一次對(duì)象,"a"+"b"又創(chuàng)建了一個(gè)新的串,新的對(duì)象 ,new 創(chuàng)建了一個(gè)對(duì)象在堆,所以一共創(chuàng)建四次對(duì)象.
String a="sss";
這是之前我的理解 不知道對(duì)不對(duì) 大家看看評(píng)論第二條,是另一種理解。如果我們是為了應(yīng)付面試可以兩者結(jié)合來說,如果自己鉆研 還是動(dòng)手多操作看看 ~~在不同的jdk版本可能有不同的結(jié)果
例子:a="bbb";
String 不是不可變對(duì)象嗎 ?是怎么賦值的呢?
String 是不可變對(duì)象,當(dāng)jvm看到"sss"時(shí)把引用賦給a,當(dāng) jvm看到"bbb"的時(shí)候,又創(chuàng)建了新的對(duì)象 ,把新的引用返回給a,而原來的"sss"還是不變的.
到此這篇關(guān)于String s = new String(" a ") 到底產(chǎn)生幾個(gè)對(duì)象的文章就介紹到這了,更多相關(guān)String s = new String(" a ")內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java命令設(shè)計(jì)模式優(yōu)雅解耦命令和執(zhí)行提高代碼可維護(hù)性
本文介紹了Java命令設(shè)計(jì)模式,它將命令請(qǐng)求封裝成對(duì)象,以達(dá)到解耦命令請(qǐng)求和執(zhí)行者的目的,從而提高代碼可維護(hù)性。本文詳細(xì)闡述了該模式的設(shè)計(jì)原則、實(shí)現(xiàn)方法和優(yōu)缺點(diǎn),并提供了實(shí)際應(yīng)用場(chǎng)景和代碼示例,幫助讀者深入理解和應(yīng)用該模式2023-04-04
springboot接入cachecloud redis示例實(shí)踐
這篇文章主要介紹了springboot接入cachecloud redis示例實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Java實(shí)現(xiàn)人臉識(shí)別登錄、注冊(cè)等功能(最新完整版)
這段時(shí)間由于學(xué)校實(shí)行靜態(tài)化管理,寢室門和校門都是用了人臉識(shí)別的裝置,本系列項(xiàng)目從設(shè)計(jì)到實(shí)現(xiàn)源碼全部開源免費(fèi)學(xué)習(xí)使用,對(duì)Java實(shí)現(xiàn)人臉識(shí)別登錄、注冊(cè)功能感興趣的朋友一起看看吧2022-05-05
JavaWeb基礎(chǔ)教程之Java基礎(chǔ)加強(qiáng)版
這篇文章主要介紹了JavaWeb基礎(chǔ)教程之Java基礎(chǔ)加強(qiáng)版的相關(guān)資料,需要的朋友可以參考下2016-07-07
詳解SpringBoot?Start組件開發(fā)之記錄接口日志信息
這篇文章主要為大家介紹了SpringBoot-Start組件開發(fā)之記錄接口日志信息詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Java8 stream 中利用 groupingBy 進(jìn)行多字段分組求和案例
這篇文章主要介紹了Java8 stream 中利用 groupingBy 進(jìn)行多字段分組求和案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08

