在java中判断两个对象是否相等,应该用equals函数而不是==或!=两个运算符,但是我用下面的代码测试时输出的是==而不是!=,请问这是为什么啊String a = "004606b82f7609592a76c2108e56e0fb-3.1";
String bc = "004606b82f7609592a76c2108e56e0fb-3.1";
if (a == bc)
System.out.print("==");
else
System.out.print("!=");
String bc = "004606b82f7609592a76c2108e56e0fb-3.1";
if (a == bc)
System.out.print("==");
else
System.out.print("!=");
解决方案 »
- 为何显示“使用了未经检查或不安全的操作。”
- Java侦听系统终止事件,做好扫尾工作
- 大家说我现在应该学点什么好。。
- 怎样将当前字符串常量转换为字符数组
- jPanel放在jScrollPane中,jScrollPane无法出现ScrollBar
- 请教一个关于applet调用新窗口的问题/
- "Integer对象是不可变的"-----关于final和封装器的问题,望高手指点!
- 怎样用java 写一个类似画板的程序
- 请哪位朋友指点一下这到底是什么错,怎么解决???
- 求一验证Email地址合法性的程序
- 问一个关于eclipse设置颜色的问题、请帮忙解答,谢谢
- jre 瘦身, 打包成exe求指教 java 窗口+图片 透明
你可以这么理解,当bc="004606b82f7609592a76c2108e56e0fb-3.1";
他会先去常量区查找有没004606b82f7609592a76c2108e56e0fb-3,如果有那么把bc执行他的内存地址
所以a == bc
String a = new String("004606b82f7609592a76c2108e56e0fb-3.1");
String bc =new String( "004606b82f7609592a76c2108e56e0fb-3.1");
这样就不等了~
如果你定义两个String 对象:
String a=new String("004606b82f7609592a76c2108e56e0fb-3.1");
String bc=new String("004606b82f7609592a76c2108e56e0fb-3.1");那么你就可以得到你想要的了就是 !=。
看书一定要仔细,不然概念易混淆哦
http://blog.csdn.net/tayanxunhua/article/details/8718453