String字符串
1.字符串不可变,JVM维护一个字符串常量池/缓冲区。每次创建字符串,先到字符串常量池找,有则直接使用,没有则新创建该字符串,即字符串具有共享特性
2.String str = new String("abc"); 创建2个对象:"abc"为一个对象,new 又在堆内存中开辟一个对象空间
3.可变字符串,StringBuffer,StringBuilder
创建字符串
public static void main(String[] args) {
//字符串常量池
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2);//地址相同
System.out.println(s1.equals(s2));//内容相同
//堆内存中开辟空间,"hello"本身就为一个对象,new 又创建一个对象,所以,new String("abc")会有2个对象产生
String objStr = new String("hello");
System.out.println(objStr == s1);//地址不同,false
System.out.println(objStr.equals(s1));//比较内容,true
}