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));

    }
}

 

posted @ 2020-07-05 14:58  邱大将军  阅读(430)  评论(0编辑  收藏  举报