String s = new String(" a ") 到底產生幾個物件?
老生常談的一個梗,到2020了還在爭論,你們一天天的,哎哎哎,我不是針對你一個,我是說在座的各位都是人才!
上圖紅色的這3個箭頭,對於通過new
產生一個字串(”宜春”)時,會先去常量池中查詢是否已經有了”宜春”物件,如果沒有則在常量池中建立一個此字串物件,然後堆中再建立一個常量池中此”宜春”物件的拷貝物件。
也就是說準確答案是產生了一個或兩個物件,如果常量池中原來沒有 ”宜春” ,就是兩個。反之就是一個。
是的!如果面試官問到,回答一個或兩個即可,但是…畢竟…畢竟
畢竟我和各位都是人才,java知識底蘊不能如此短淺,這題還沒謝幕我們還能對面試官多嗶嗶幾句:字串常量池在不同版本的jvm中可能位置不同,那麼這又是一個老梗了,到這裡,歡迎評論區暢談,估計面試官會眼前一亮小夥有點東西!
最後,若有不足或者不正之處,歡迎指正批評,感激不盡!如果有疑問歡迎留言,絕對第一時間回覆!
歡迎各位關注我的公眾號,裡面有一些java學習資料和一大波java電子書籍,比如說周志明老師的深入java虛擬機器、java程式設計思想、核心技術卷、大話設計模式、java併發程式設計實戰…都是java的聖經,不說了快上Tomcat車,咋們走!最主要的是一起探討技術,嚮往技術,追求技術,說好了來了就是盆友喔…
相關文章
- JAVA面試題 String s = new String("xyz");產生了幾個物件?Java面試題物件
- String s="a"+"b"+"c",到底建立了幾個物件?物件
- 【Java面試】new String("abc")到底建立了幾個物件?Java面試物件
- new String("yefeng")建立了幾個物件物件
- String s = “hello“和String s = new String(“hello“)的區別
- 面試題系列:new String("abc")建立了幾個物件面試題物件
- 【JDK】分析 String str=““ 與 new String()JDK
- String和StringBuffer的幾個小程式
- 2020-11-23Command物件的三個主要方法和String and String Builder類 字串建造物件UI字串
- JavaScript 複習之 String 物件JavaScript物件
- String,String Builder,String Buffer-原始碼UI原始碼
- Integer.valueof(String s)和Integer.parseInt(String s)的具體區別是什麼?
- Java String 物件,你瞭解多少?Java物件
- Failed to execute user defined function(anonfun$concatStr$1: (map<string,string>, string) => string)AIFunction
- ava String 物件,你真的瞭解了嗎?物件
- js字串string轉object物件 - 方法篇JS字串Object物件
- JavaScript 基礎(二) – 建立 function 物件的方法, String物件, Array物件JavaScriptFunction物件
- String
- 幾張圖輕鬆理解String.intern()
- rust 中 str 與 String; &str &StringRust
- 轉換String三種方式比較:toString()、String.valueOf()、(String)
- 生產環境頻繁記憶體溢位,原來就是因為這個“String類”記憶體溢位
- simplexml_load_string 將xml轉換成物件XML物件
- JavaScript String()JavaScript
- spring - stringSpring
- String …params
- String模板
- python stringPython
- string 字串字串
- python stringPython
- Date or String
- String類
- string容器
- String字串字串
- String.isEmpty()比"" .equals(s)或s.equals("")效能更快 - Dmytro Dumanskiy
- ES 筆記十:Query String & Simple Query String筆記
- Solidity String轉byte32 byte轉StringSolid
- C++:String物件的構造及深拷貝C++物件