java中String類別的使用頻率非常高,那讓我們來看看它到底是什麼?
String是不可變物件
#java.lang.String類別使用了final修飾,不能被繼承。 Java程式中的所有字面值,即雙引號括起的字串,如"abc",都是作為String類別的實例實現的。
String是常數,其物件一旦建構就不能再被改變。換句話說,String物件是不可變的,每一個看起來會修改String值的方法,實際上都是創造了一個全新的String對象,以包含修改後的字串內容。而最初的String物件則絲毫未動。 String物件具有唯讀特性,指向它的任何引用都不可能改變它的值,因此,也不會對其他的引用有什麼影響。但是字串引用可以重新賦值。
java字串在記憶體中採用unicode編碼方式,任何一個字元對應兩個位元組的定長編碼,即任何一個字元(無論中文或英文)都算一個字元長度,佔用兩個字節。
範例:
public class Immutable { public static String upcase(String s) { return s.toUpperCase(); } public static void main(String[ ] args) { String str1= "Hello World"; System.out.println(str1); //Hello World String str2 = upcase(str1); System.out.println(str2); //HELLO WORLD System.out.println(str1); //Hello World } }
當str1傳遞給upcase()方法時,實際傳遞的是引用的一個拷貝。其實,每當把String物件當作方法的參數時,都會複製一份引用,而該引用所指的物件其實一直待在單一的實體位置上,從未動過。
String常數池
常數池(constant pool)指的是編譯期被確定,並被保存在已編譯的.class檔案中的一些數據。它包括了關於類別、方法、介面等中的常數,也包括字串常數。 Java為了提高效能,靜態字串(字面量/常數/常數連接的結果)在常數池中創建,並儘量使用同一個對象,重複使用靜態字串。對於重複出現的字串直接量,JVM會先在常數池中查找,如果常數池中存在即傳回該物件。
例2:
public class test1 { public static void main(String[] args){ String str1 = "Hello"; //不会创建新的String对象,而是使用常量池中已有的"Hello", String str2 = "Hello"; System.out.println(str1 == str2); //true //使用new关键字会创建新的String对象 String str3 = new String("Hello"); System.out.println(str1 == str3); //false } }
以上是java中string類別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器