当前位置:系统粉 > 电脑问答 > 其他问答 > 求助!变量问题

求助!变量问题

提问者:最爱大富翁4  |  浏览 次  |  提问时间:2017-01-27  |  回答数量:5

求助!变量问题String str = new String(\"\");String str1 = \"\";if(str1==str){System.out.println(\"一样\");}else{System.out.println(\"不一样\");}复制代码经过调试,知道输出结果可是不大明白。意思

已有5条答案
__望崽丶

__望崽丶

回答数:135  |  被采纳数:86

2017-01-27 19:52:13
很简单!

String str = new String("");
String str1 = "";
两个方法定义的String类型 在内存中不是同一个对象
因此 用 ==来进行比较的话 返回的是false
如果你用equals来进行比较的话 返回的才是true
赞 13
ypyzlz

ypyzlz

回答数:88  |  被采纳数:64

2017-01-27 20:49:19
如果要专业的解释可以这么回答告诉你

String str = "" ;
这样的定义字符串类型 是个常量 也就是在常量池中有数据的存在,在编译期间就能被确定下来
String str = new String("");
这样的定义字符串类型 是个新建的(因为使用的关键字new) 在内存当中有自己的地址空间 因此不是常量 也就不能放进常量池中 因此在编译期间就不能被确定下来 所以在运行的时候 只是创建的新对象"" 而已

所以 使用==来进行比较的话 是不相等的,如果使用equals 或者equalsIgnoreCase来进行比较的话是相等的!
赞 8
751393986

751393986

回答数:19  |  被采纳数:1

2017-01-28 00:23:51
http://bbs.cfanclub/read.php?tid=302968
赞 1
夜枫枫丶

夜枫枫丶

回答数:17  |  被采纳数:41

2017-01-28 02:47:15
VC里的CString可以这样比较,java里的String好像跟char*差不多
赞 1
宫廷计助理

宫廷计助理

回答数:203  |  被采纳数:28

2017-01-28 03:29:01
[s:524]非常感谢三位。neo_pang 够专业
赞 20
解决方法
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航