注册 登录
编程论坛 JAVA论坛

java中地址字符串的地址问题

仍去寻酒 发布于 2016-07-19 22:27, 1972 次点击
                String s1="this is the secend string.";
        String s2="this is the secend string.";
        boolean result=s1==s2;
        System.out.println(result);
   
求教大神这个 = = 为什么输出结果是true?不是在内存里面重新开辟内存了吗?又不是常量进行寻找看是否有相同的。。。
4 回复
#2
grmmylbs2016-07-20 10:14
这就是引用和创建对象的区别了。引用的话就是在栈里找,若果有,就指向他,所以你这个是true。而new对象,则会在堆里创建一个,使用new的时候就不等了。
#3
仍去寻酒2016-07-20 22:53
回复 2楼 grmmylbs
懂了 3q~
#4
阿狸12016-07-20 22:55
输出的是波尔类型,结果不是false就是true,s1=s2所以是输出true
#5
wjh20142016-07-28 14:35
直接这么创建的话 在内存里只有一个“this is the secend string.”常量,s1和s2都会指向这个内存的,这跟new不同,所以true
1