特點(diǎn):
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供興和網(wǎng)站建設(shè)、興和做網(wǎng)站、興和網(wǎng)站設(shè)計(jì)、興和網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、興和企業(yè)網(wǎng)站模板建站服務(wù),10年興和做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。(推薦教程:java入門教程)
1、String類是被final修飾的,是不能被繼承的。
2、String類底層使用數(shù)組結(jié)構(gòu)。jdk9以前使用的是char[],jdk9以后使用的是byte[]。
3、String的對(duì)象一旦創(chuàng)建就不能修改,底層維護(hù)了一個(gè)字符串常量池,實(shí)現(xiàn)共享。
注意:String類的對(duì)象每次修改都會(huì)產(chǎn)生一個(gè)新的對(duì)象。
(視頻教程推薦:java視頻教程)
String對(duì)象的拼接
常量池中的字符串常量 + 常量池中的字符串常量 :結(jié)果是存儲(chǔ)在常量池中
String c = "a"+"b"; String ab = "ab"; System.err.println(ab==c); //輸出true123
變量 + 常量池中的字符串常量 : 結(jié)果是存儲(chǔ)在堆中的
String a = "a"; String c = "a"+"b"; System.err.println(c==a+"b"); //輸出false123
如果拼接結(jié)果調(diào)用intern()方法,返回值就在常量池中
String a = "a"; String b = "b"; String c = "a"+"b"; System.err.println(c==a+b); //輸出false,證明String類的拼接中只要有一個(gè)是變量,結(jié)果就存在堆中 String a = "a"; String b = "b"; String c = "a"+"b"; System.err.println(c==(a+b).intern()); //輸出true,說明如果拼接結(jié)果調(diào)用intern()方法,返回值就在常量池中