String不同实例化方式的对比

1. String s1 = "hello" 和String s2 = new String("hello")有什么不同?

        String s1 = "hello";
        String s2 = "hello";
        String s3 = new String("jixian");
        String s4 = new String("jixian");
        System.out.println(s1 == s2);//true
        System.out.println(s1 == s3);//false
        System.out.println(s1 == s4);//false
        System.out.println(s3 == s4);//false

String s1 = "hello"声明的字符串是在方法区的字符串常量池中,s1存的是字符串常量池中"hello"的地址;

而String s2 = new String("hello")的s2存的是堆空间中指向变量value的地址,而变量value的内容是字符串常量池中"hello"的地址。

String不同实例化方式的对比

 

上一篇:Java练习(六)---登录验证姓名和密码


下一篇:14_基于FPGA的DSS与嵌入式逻辑分析仪的调用