Java面向對象-- String 類
阿新 • • 發佈:2018-10-21
clas orm img 面向 public div string 通過 --
1,實例化String對象 ,
有兩種方式,我們直接看代碼:
package com.java1234.chap03.sec08; public class Demo1 { public static void main(String[] args) { // 實例化String的方式一 String name1="張三"; System.out.println("name1="+name1); // 實例化String的方式二 String name2=new String("李四"); System.out.println("name2="+name2); } }
運行輸出:
name1=張三
name2=李四
2,“==”VS“equals方法”
“==” 比較的是引用(是否指向同一個內存塊) “equals”比較的是具體內容
package com.java1234.chap03.sec08; public class Demo2 { public static void main(String[] args) { String name1="張三"; // 直接賦值方式 String name2=new String("張三"); // new方式 String name3=name2; //傳遞引用 // ==比較的是引用 System.out.println("name1==name2:"+(name1==name2)); System.out.println("name1==name3:"+(name1==name3)); System.out.println("name2==name3:"+(name2==name3)); // equals比較的是具體內容 System.out.println("name1.equals(name2):"+(name1.equals(name2))); System.out.println("name1.equals(name3:"+(name1.equals(name3))); System.out.println("name2.equals(name3):"+(name2.equals(name3))); } }
運行輸出:
name1==name2:false
name1==name3:false
name2==name3:true
name1.equals(name2):true
name1.equals(name3:true
name2.equals(name3):true
3,String兩種實例化方式的區別
直接賦值方式,創建的對象存放到字符串對象池裏,假如存在的,就不會再創建;
new對象方式,每次都創建一個新的對象;
package com.java1234.chap03.sec08; public class Demo3 { public static void main(String[] args) { String name1="張三"; String name2="張三"; String name3=new String("張三"); String name4=new String("張三"); System.out.println("name1==name2:"+(name1==name2)); System.out.println("name1==name3:"+(name1==name3)); System.out.println("name3==name4:"+(name3==name4)); } }
運行輸出:
name1==name2:true
name1==name3:false
name3==name4:false
4,字符串的內容不可變性
字符串的特性:不能改變字符串的內容;
要想改變,只能通過指向一個新的內存地址;
package com.java1234.chap03.sec08; public class Demo4 { public static void main(String[] args) { String name="張"; name+="三"; System.out.println(name); } }
Java面向對象-- String 類