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類指的是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
合生創展,全稱是合生創展集團有限公司,于1992年在香港成立,1998年在香港聯交所主板上市。不少人很是好奇,合生創展幕后老板及董事長是誰?集團在房地產排名怎么樣?下面,我們一起來具體了解一下。官網資料顯示,合生創展逐步發展為全產業鏈優質生活運營商,多元業務板塊構筑全領域發展,旗下地產、商業、基建、合生活、投資五大板塊并驅發展,科技、養老、文旅、教育、健康、金融、汽車等多元化業態優化布局。據202...
秘樂短視頻賺錢靠譜嗎?目前來看,秘樂短視頻賺錢是不靠譜的。秘樂短視頻賺錢是秘樂短視頻經營平臺推出的一種營銷套路而已,先吸引用戶購買【秘豆】或是通過其他的方式積累一定額度的秘豆,然后在進行兌換現金。而且提現的時候需要用戶提供本人的身份證和銀行卡,在繳納手續費的同時,還需要進行人臉視頻認證操作。秘樂短視頻怎么提現?用戶在賺取到【秘豆】后要打開瀏覽器進入【秘豆交易平臺】,隨后點擊【我的】,進入個人中心再...
12335是什么電話?涉嫌個人信息泄露可以單獨在12321進行舉報,比如通訊錄信息泄露等。涉嫌暴力催收、爆通訊錄可以直接報警,還可以找到網貸平臺所屬地的公安廳廳長信箱進行舉報。還有可以查到網貸公司所屬地的金融監管機構電話進行舉報。最好每一通電話都把音錄上,自己收集點證據,遇到問題第一時間就要舉報、報警,一次都不要忍讓,要不會變本加厲的。電話12335是舉報什么內容?12333是 勞動監察部門的投訴...