why: String s=="1"不对,String s.equals("1")就可以,

qiri07 2003-03-16 03:36:25
原来if (usersex=="1")不报错,结果不正确
换成if (usersex.equals("1"))就对了,很是奇怪
String usersex ,usersex是从数据库中取出的字段sex ,char(1)

<% String male="";
String female="";
if (usersex.equals("1")){
male="selected";
}
else
female="selected";
%>
<option <%=male%> value="1">男</option>
<option <%=female%> value="0" >女</option>
</select>
...全文
40 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyu123 2003-07-18
  • 打赏
  • 举报
回复
同一个地址的比较 指的是什么??????????
foolbirds 2003-03-16
  • 打赏
  • 举报
回复
== 是两个对象是否指向同一个地址的比较
equals 是两个对象内容的比较
so。。。。。。
geoff 2003-03-16
  • 打赏
  • 举报
回复
JAVA不支持操作符的转译
yun15291li 2003-03-16
  • 打赏
  • 举报
回复
一个对象名实际是一个指针
==比较的是两个指针是否指向同一个地址
equals比较的是两个指针指向的地址中的内容

JAVA中的变量分为基本类型和对象类型,基本类型包括int,long,char之类的变量,在判断这类变量是否相等时,使用==,而在对象之间进行比较时==就不行了,如果两个对象使用==比较返回true的话,说明它们指向的是同一个引用,这样的比较没有意义,所以对象之间的比较用从Object对象里继承来的equals()方法来进行,Object中的equals()方法不做任何实际比较,只是符合如下规律:1.可逆(reflexive) 例x.equals(x)返回true 2.对称(symmetric) 例如果x.equals(y)返回true,则y.equals(x)返回true 3.传递(transitive) 例如果x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)返回true 4.持续(consistent) 5.非空
所有对象实现的equals()方法都满足这些条件,而不同的对象比较的方法则不相同,例如String对象的equals()就是比较两个自符串每个自符是否一致来实现的,因此如果是自己创建的对象,如果想要比较的话,就应该自己实现equals()方法.
neo2020cn 2003-03-16
  • 打赏
  • 举报
回复
==比较的是地址,equals()方法比较的是对象的属性,所以...
guyanduzui 2003-03-16
  • 打赏
  • 举报
回复
友情up

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧