大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java字符串常量池的介紹

Java字符串常量池的介紹

更新時間:2022-09-22 09:23:10 來源:動力節點 瀏覽908次

了解Java 中的 String 類、使其不可變背后的動機以及關于String常量池的整個想法。當我們通過 String 字面量或 String 構造函數創建 String 實例時,我們將看到如何操作內存。

1. Java 中的不可變字符串

字符串是一個字符序列。在 Java 中,與其他編程語言類似,字符串是預定義類型的一部分。Java 有java.lang.String類,其實例代表字符串。

該類String是一個不可變的類。不可變意味著String一旦創建了它的實例就不能更改。

通常,許多敏感信息(用戶名、密碼、URL、端口、數據庫、套接字連接)都以字符串的形式表示和傳遞。通過使這些信息不可變,代碼變得安全,可以抵御各種安全威脅。

字符串不變性還允許緩存字符串文字,這允許應用程序使用大量字符串文字,而對堆內存和垃圾收集器的影響最小。

在可變上下文中,對字符串文字的修改可能會導致變量損壞。

2. Java中的字符串常量池是什么?

Java中的內存分為三個部分,即堆、棧和字符串池。字符串常量池是用于存儲字符串文字的特殊區域。

請注意,在 Java 7 之前,字符串池是永久代內存區域的一部分。

從 Java 7 開始,字符串與應用程序創建的其他對象一起分配在 Java 堆區域中。

后來,在 Java 8 中,永久代已被完全刪除。

因此,在最新的 JVM 中,字符串池是堆內存中分配用于存儲字符串文字的特殊區域。

3. 字符串字面量和字符串對象的區別

在 Java 中,字符串字面量是使用雙引號創建的字符串,而字符串對象是使用new()運算符創建的字符串。

請注意,字符串字面量是在字符串池區域中創建的,而字符串對象是在堆內存區域中創建的。

String strLiteral = "Hello World";
String strObj = new String("Hello World");

假設我們要創建兩個內容相同的字符串“ howtodoinjava”。如果內容為“ howtodoinjava”的字符串已經存在,那么新的文字將指向已經存在的文字。對于 String 對象,每次都會在堆中創建一個新的 String 對象。

讓我們看一個例子。

String a = "howtodoinjava";
String b = "howtodoinjava";
System.out.println(a == b);     //true

在上面的程序中,我們創建了兩個具有相同內容的字符串文字。在字符串池中創建 'a' 后,下一個字符串字面量 ' b' 指向內存區域中的同一個對象,所以'a == b'是true。

String a = "howtodoinjava";
String b = "howtodoinjava";
System.out.println(a == b);
String c = new String("howtodoinjava");
System.out.println(a == b);     //true
System.out.println(b == c);     //false

4. String.intern() 方法

我們知道字符串字面量是在字符串池中創建的,而字符串對象是在堆內存區域中創建的。

我們可以使用方法String.intern()為字符串對象創建字符串字面量。當在字符串對象上調用時,方法intern()會在堆內存中創建字符串對象的精確副本,并將其存儲在字符串常量池中。

String a = "howtodoinjava";
String b = "howtodoinjava";
String c = new String("howtodoinjava");
String d = c.intern();

在上面的示例中,字符串 a, b 和d將引用 SCP 中的相同字符串文字。該字符串c將繼續指向堆中的對象。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日本一级α一片免费视频 | 麻豆精品一区二区三区免费 | 婷婷综合激情五月中文字幕 | 亚洲精品国产福利一区二区三区 | 四虎国产视频 | 久久久精品 | 手机看片国产欧美日韩高清 | 日本三级不卡 | 色噜噜视频 | 成人在线毛片 | 亚洲欧美18v中文字幕高清 | 久久久久亚洲国产 | 美女视频免费在线观看 | 久久久国产精品va麻豆 | 亚洲欧洲精品在线 | 亚洲综合国产一区二区三区 | 久久青草免费91线频观看不卡 | 久久精品视频大全 | 看全色黄大色黄大片色责看的 | 最新精品亚洲成a人在线观看 | 97dyy在线观看手机版 | 狠狠操大逼 | 啪啪网站免费 | 国产精品99久久久久久www | 爱爱视频免费在线观看 | 久操伊人| 亚洲精品成人在线 | 九九久久免费视频 | 日本一区二区三区四区在线观看 | 国产大片在线观看 | 亚洲qingse中文久久网 | 亚洲精品色一区色二区色三区 | 久久99中文字幕 | 久草免费资源视频 | 色片免费 | 中文字幕最新在线 | 久久er99| 天天做天天做天天综合网 | 91成人爽a毛片一区二区 | 国产精选自拍 | 久久刺激 |