java string intern方法 javastringintern有什么用?
javastringintern有什么用?首先,讓我們看一個例子:public static void main(string[]args)拋出異常{T/tstring a=“B”-T/tstring
javastringintern有什么用?
首先,讓我們看一個例子:
public static void main(string[]args)拋出異常{T/tstring a=“B”-T/tstring B=“B”-T/T 系統(tǒng)輸出打?。╝==b) 字符串c=“d” 字符串d=新字符串(“d”).intern() 系統(tǒng)輸出打印你能看到控制臺上打印的信息嗎?控制臺輸出true的原因是intern方法返回返回的string對象的規(guī)范化表示。調(diào)用intern方法時,如果池中已經(jīng)包含一個與string對象相等的字符串(該對象由equals(object)方法確定),則池中的字符串將被返回。否則,string對象將添加到池中,并返回對string對象的引用。那么C和D相等。
一個字符串類型的值能儲存最大容量是多少???
呃,你可以看到源代碼,還有很多案例。字符串?dāng)?shù)組的最大長度當(dāng)然是Integer.MAX但是,Java在常量池中有一個變量utf8表。該表的最大字段為65535,null占用兩個字節(jié)。因此,當(dāng)字符串填充字母時,源代碼中有一個判斷(<65535),即可以放入65534個字母,但如果是漢字,則判斷條件是(<65535),即可以放入65535個漢字。當(dāng)然,以上情況都是在編譯時發(fā)生的。如果是在運(yùn)行時,則最大長度為Integer.MAX價值接近4G,基本上是不可能的。最長的字符串場景應(yīng)該是序列化類,它可以持續(xù)數(shù)千年。