读书人

一个很让小弟我纳闷郁闷的有关问题

发布时间: 2013-11-29 13:49:33 作者: rapoo

一个很让我纳闷郁闷的问题
web开发:

JSP中:js代码:function oldPwdCheck(){
var oldPwd=$("#oldPwd").val();
$.post("validateOldPwd",{"oldPwd":oldPwd},function(data){
if(data){
saveFlag=true;
}else{
saveFlag=false;
}
});
}

action中: private String oldPwd;
AdminInfo admin=(AdminInfo) session.get("adminInfo");
System.out.println(admin.getPassword());//111111
System.out.println(oldPwd);//111111
System.out.println(admin.getPassword()==oldPwd)//false


pojo类 adminInfo中password也是String类型 打印出来的明明的是 111111
admin.getPassword()==oldPwd确实false 郁闷了 为什么?
求指点!!!!!!!!!!
[解决办法]
== 比较的是引用 用equals看看
[解决办法]
System.out.println(admin.getPassword());//111111
System.out.println(oldPwd);//111111
System.out.println(admin.getPassword()==oldPwd)//false
这是 == 与 equals 的区别,一个比较内存地址,一个比较实际内容
[解决办法]
==是引用地址的比较,.equals是取值来比较。虽然admin.getPassword和oldPwd返回都是111111,可是在JAVA中它们分别指向的是内存中的不同地址的对象。== 是对引用地址的比较。就好象同一姓名的两个人,== 符号是比较是否是同一个人,而equals是指他们是否有相同姓名。

读书人网 >JavaScript

热点推荐