標籤:string類 java基礎
String 類的兩種執行個體化方式
A.直接賦值
public class Stringlei{public static void main(String args[]){String name="張三";System.out.println("姓名:"+name);}}
B.通過關鍵字new
public class Stringlei{public static void main(String args[]){String name=new String("張三");System.out.println("姓名:"+name);}}
String的內容比較
1.使用“==”比較
public class Stringlei{public static void main(String args[]){ String str1="hello"; String str2=new String("hello"); String str3=str2; System.out.println("str1==str2?-->"+(str1==str2));//false System.out.println("str1==str3?-->"+(str1==str3));//false System.out.println("str2==str3?-->"+(str2==str3));//true}}
由此可知:"=="判斷的是地址空間是否相等判斷的是地址,如果想要判斷內容,則必須使用String中提供的equals()方法完成:
public class Stringlei{public static void main(String args[]){ String str1="hello"; String str2=new String("hello"); String str3=str2; System.out.println("str1==str2?-->"+(str1.equals(str2)));//true System.out.println("str1==str3?-->"+(str1.equals(str3)));//true System.out.println("str2==str3?-->"+(str2.equals(str3)));//true}}兩種執行個體化方式的區別
在String中可以使用直接賦值和new調用構造方法完成。比較兩種方法。
一個字串就是String的匿名對象
public class Stringlei{public static void main(String args[]){ String str1="hello";//實際就是將一個堆記憶體空間的指向給了棧記憶體空間 String str2="hello"; String str3="hello"; System.out.println("str1==str2?-->"+(str1==str2));//true System.out.println("str1==str3?-->"+(str1==str3));//true System.out.println("str2==str3?-->"+(str2==str3));//true}}
字串的內容不可改變
public class Stringlei{public static void main(String args[]){ String str="hello"; str=str+" world!"; System.out.println("str = " +str);}}
此處並不是簡單的改變了str中的內容,具體如:
java物件導向基礎 String類