Java常见类
1. String类
String的创建方法有:
- String s = “xx”;
- String s = new String(“xx”);
区别:
- String s = “xx”,会先检查常量池中是否具有"xx"的对象,若有,引用s指向该对象;若没有,在常量池中新建一个"xx"对象,s指向这个对象。
- String s = new String(“xx”),会直接在堆中新建一个"xx"对象,并让s指向该对象
注:什么是引用?引用就是对象的地址。
例子如下:
区别1:
public class Test {
public static void main(String[] args) {
String s1 = "xx"; // 在常量池中创建一个字符串"xx"对象,并让引用s1指向该对象
String s2 = "xx"; // 检查发现常量池中已有"xx"对象,s2将直接指向该对象
System.out.println(s1 == s2); // 查看s1是否与s2指向同一个对象
}
}
注:使用==可以查看引用是否指向同一个对象
区别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方法,可以返回字符串实例在常量池中的对象地址(如果没有,则会创建)