String字符串存储详解
示例代码:
public class Demo2 { public static void main(String[] args) { String name1 = "qiu"; //"qiu" 常量存储在字符串常量池中 , name1指向"qiu" String name2 = "zhangsan"; //在字符串常量池中重新开辟一个空间存放"zhangsan"常量 , name2指向"zhangsan" String name3 = "zhangsan"; //在字符串常量池中找到"zhangsan" , name3指向"zhangsan" , name2和name3 有相同的地址; //两种字符串创建方式 String s1 = "hello"; //产生一个对象,字符串常量池中存储 String s2 = new String("hello"); //产生两个对象, 堆、池中个存储一个 s2指向堆空间,s2存放的地址为堆空间的地址 //面试题 String s3 = new String("hello"); System.out.println(s2==s3); //false //字符串比较 一般用equals() System.out.println(s2.equals(s3)); } }