| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1821 人关注过本帖
标题:java中地址字符串的地址问题
只看楼主 加入收藏
仍去寻酒
Rank: 2
来 自:火星
等 级:论坛游民
威 望:1
帖 子:14
专家分:27
注 册:2016-7-16
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
java中地址字符串的地址问题
                String s1="this is the secend string.";
        String s2="this is the secend string.";
        boolean result=s1==s2;
        System.out.println(result);
   
求教大神这个 = = 为什么输出结果是true?不是在内存里面重新开辟内存了吗?又不是常量进行寻找看是否有相同的。。。
搜索更多相关主题的帖子: result 字符串 java 
2016-07-19 22:27
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:10 
这就是引用和创建对象的区别了。引用的话就是在栈里找,若果有,就指向他,所以你这个是true。而new对象,则会在堆里创建一个,使用new的时候就不等了。
2016-07-20 10:14
仍去寻酒
Rank: 2
来 自:火星
等 级:论坛游民
威 望:1
帖 子:14
专家分:27
注 册:2016-7-16
收藏
得分:0 
回复 2楼 grmmylbs
懂了 3q~

不断的发现以前的自己是个傻逼 ,这就是人生
2016-07-20 22:53
阿狸1
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-7-20
收藏
得分:0 
输出的是波尔类型,结果不是false就是true,s1=s2所以是输出true
2016-07-20 22:55
wjh2014
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2015-7-7
收藏
得分:0 
直接这么创建的话 在内存里只有一个“this is the secend string.”常量,s1和s2都会指向这个内存的,这跟new不同,所以true
2016-07-28 14:35
快速回复:java中地址字符串的地址问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046716 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved