十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
特點(diǎn):
(推薦教程:java入門(mén)教程)
1、String類(lèi)是被final修飾的,是不能被繼承的。
2、String類(lèi)底層使用數(shù)組結(jié)構(gòu)。jdk9以前使用的是char[],jdk9以后使用的是byte[]。
3、String的對(duì)象一旦創(chuàng)建就不能修改,底層維護(hù)了一個(gè)字符串常量池,實(shí)現(xiàn)共享。
注意:String類(lèi)的對(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類(lèi)的拼接中只要有一個(gè)是變量,結(jié)果就存在堆中 String a = "a"; String b = "b"; String c = "a"+"b"; System.err.println(c==(a+b).intern()); //輸出true,說(shuō)明如果拼接結(jié)果調(diào)用intern()方法,返回值就在常量池中