一个很让我纳闷郁闷的问题
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是指他们是否有相同姓名。