String類的特點是什么?String類常用構(gòu)造方法

String 類代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被實現(xiàn)為此類的實例。也就是說,Java 程序中所有的雙引號字符串,都是 String 類的對象。String 類在 java.lang 包下,所以使用的時候不需要導(dǎo)包。
String類的特點
字符串不可變,它們的值在創(chuàng)建后不能被更改
– 雖然 String 的值是不可變的,但是它們可以被共享
– 字符串效果上相當(dāng)于字符數(shù)組( char[] ),但是底層原理是字節(jié)數(shù)組( byte[] )
String類的構(gòu)造方法
常用的構(gòu)造方法
?| 方法名 ? ? ? ? ? ? ? ? ? ? ?| 說明 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
?| --------------------------- | ----------------------------------------- |
?| public ? String() ? ? ? ? ? | 創(chuàng)建一個空白字符串對象,不含有任何內(nèi)容 ? ?|
?| public ? String(char[] chs) | 根據(jù)字符數(shù)組的內(nèi)容,來創(chuàng)建字符串對象 ? ? ?|
?| public ? String(byte[] bys) | 根據(jù)字節(jié)數(shù)組的內(nèi)容,來創(chuàng)建字符串對象 ? ? ?|
?| String s = ? “abc”; ? ? ? ? | 直接賦值的方式創(chuàng)建字符串對象,內(nèi)容就是abc |
示例代碼
?public class StringDemo01 {
? ? ?public static void main(String[] args) {
? ? ? ? ?//public String():創(chuàng)建一個空白字符串對象,不含有任何內(nèi)容
? ? ? ? ?String s1 = new String();
? ? ? ? ?System.out.println("s1:" + s1);
?
? ? ? ? ?//public String(char[] chs):根據(jù)字符數(shù)組的內(nèi)容,來創(chuàng)建字符串對象
? ? ? ? ?char[] chs = {'a', 'b', 'c'};
? ? ? ? ?String s2 = new String(chs);
? ? ? ? ?System.out.println("s2:" + s2);
?
? ? ? ? ?//public String(byte[] bys):根據(jù)字節(jié)數(shù)組的內(nèi)容,來創(chuàng)建字符串對象
? ? ? ? ?byte[] bys = {97, 98, 99};
? ? ? ? ?String s3 = new String(bys);
? ? ? ? ?System.out.println("s3:" + s3);
?
? ? ? ? ?//String s = “abc”; ? ?直接賦值的方式創(chuàng)建字符串對象,內(nèi)容就是abc
? ? ? ? ?String s4 = "abc";
? ? ? ? ?System.out.println("s4:" + s4);
? ? ?}
?}
創(chuàng)建字符串對象兩種方式的區(qū)別
– 通過構(gòu)造方法創(chuàng)建
通過 new 創(chuàng)建的字符串對象,每一次 new 都會申請一個內(nèi)存空間,雖然內(nèi)容相同,但是地址值不同
– 直接賦值方式創(chuàng)建
以“”方式給出的字符串,只要字符序列相同(順序和大小寫),無論在程序代碼中出現(xiàn)幾次,JVM 都只會建立一個 String 對象,并在字符串池中維護