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
}
}
Java語言為字符串連接運算符(+)提供特殊支持,併為其他對象轉換為字符串。通過StringBuilder(或StringBuffer)類及其append方法實現字符串連接。字符串轉換通過toString由ObjectJava中的所有類定義並由其繼承的方法 實現。有關字符串連接和轉換的其他信息,請參閱Gosling,Joy和Steele,Java語言規範。
使用toUpperCase()、toLowerCase()實現字符串的轉換:
String message = "Welcome to Java";
String s2 = message.toUpperCase(message);
String s3 = message.toLowerCase(message);
System.out.println(s2);
System.out.println(s3);
顯示:
WELCOME TO JAVA
welcome to java
尚學堂立志解決中國教育不公平和低效率問題,幫助千千萬萬被傳統教育方式耽誤的人,傳授實用、前沿的知識,成就學員個人理想,為愛你的人和你愛的人創造美好的生活。尚學堂12大精英團隊+各類實戰項目,真正實現1+1>10的目標效果。幫助學員迅速成長,持久騰飛,成就學員“高富帥”人生。
閱讀更多 小菜鳥學Java 的文章