Java常見類
1. String類
String的創(chuàng)建方法有:
- String s = "xx";
- String s = new String("xx");
區(qū)別:
- String s = "xx",會先檢查常量池中是否具有"xx"的對象烂斋,若有屹逛,引用s指向該對象础废;若沒有,在常量池中新建一個"xx"對象罕模,s指向這個對象评腺。
- String s = new String("xx"),會直接在堆中新建一個"xx"對象淑掌,并讓s指向該對象
注:什么是引用歇僧?引用就是對象的地址。
例子如下:
區(qū)別1:
public class Test {
public static void main(String[] args) {
String s1 = "xx"; // 在常量池中創(chuàng)建一個字符串"xx"對象锋拖,并讓引用s1指向該對象
String s2 = "xx"; // 檢查發(fā)現(xiàn)常量池中已有"xx"對象诈悍,s2將直接指向該對象
System.out.println(s1 == s2); // 查看s1是否與s2指向同一個對象
}
}
注:使用==可以查看引用是否指向同一個對象
區(qū)別2:
public class Test {
public static void main(String[] args) {
String s1 = new String("xx");
String s2 = new String("xx");
System.out.println(s1 == s2);
System.out.println(s1.intern() == s2.intern());
}
}
注:使用string.intern方法,可以返回字符串實(shí)例在常量池中的對象地址(如果沒有兽埃,則會創(chuàng)建)