一,String即可以用String str = new String(“abc”);的形式來創建,也可以用String str =”abc”;的形式來創建。
String str = “abc”創建對象的過程
1 首先在常量池中查找是否存在內容爲”abc”的字符串對象
2 如果不存在則在常量池中創建一個”abc”的字符串對象,並讓str引用該對象
3 如果存在則直接讓str引用該對象
注意:常量池屬於類信息的一部分,而類信息反映到JVM內存模型中是對應存在於JVM內存模型的方法區,也就是說這個類信息中的常量池概念是存在於在方法區中。一般這種情況下,”abc”在編譯時就被寫入字節碼中,所以class被加載時,JVM就爲”abc”在常量池中分配內存,所以和靜態區差不多。
String str = new String(“abc”)創建實例的過程
1首先定義一個str的String類型的引用並存放在棧中
2在字符串常量池中查看是否存在內容爲”abc”字符串對象
3若存在則跳過這個步驟,若不存在,則在字符串常量池中創建一個內容爲”abc”的字符串對象
4執行new操作,在堆中創建一個指定的對象”abc”,這裏堆的對象是字符串常量池“abc”對象的一個拷貝對象
5讓str指向堆中“abc”這個對象(也就是存儲這個對象的在堆中的地址)
字符串的操作
Java String類
字符串廣泛運用在java編程中,在Java中字符串是屬於對象的,Java提供了string類來創建和操作字符串.
創建字符串
String name = “我叫陶大寶兒”;
在String類有11中構造方法,這些方法提供不同的參數來初始化字符串,比如提供一個字符串數組參數.
列子如下:>package work;
public class Demo_01 {
public static void main(String[] args) {
char[] A = {‘陶’,’大’,’寶’};
String B = new String(A);
System.out.println(B);
}
}
結果:陶大寶
字符串的長度
用於獲取有關對象的信息的方法稱爲訪問器方法。
String 類的一個訪問器方法是 length() 方法,它返回字符串對象包含的字符數。
package work;
public class Demo_02 {
public static void main(String[] args) {
String A = “www.taodabao.com”;
int B = A.length();
System.out.println(“長度是”+B);
}
}
鏈接字符串
String提供了兩個字符串鏈接的方式
String.concat(String2)
package work;
public class Demo_03 {
public static void main(String[] args) {
String string = “陶大寶兒”;
System.out.println(“1:”+string+”是個程序員”);
}
}
創建格式化字符串
printf() 和 format() 方法
String 類使用靜態方法 format() 返回一個String 對象而不是 PrintStream 對象。
String 類的靜態方法 format() 能用來創建可複用的格式化字符串,而不僅僅是用於一次打印輸出。
String方法
更多詳情,參看Java String API