为了账号安全,请及时绑定邮箱和手机立即绑定

这个==不是比较地址的吗。=

if (s.charAt(i)=='a' )这个小括号应该是fasle吧

正在回答

5 回答

“==”是比较地址所指向的内存内容的,不是比较地址,“=”这个代表赋值一个引用(地址)

0 回复 有任何疑惑可以回复我~
#1

欧尼桑1111 提问者

非常感谢!
2018-06-14 回复 有任何疑惑可以回复我~
#2

有态度的网友

非也,当"= ="两边都是引用类型时比较的就是对象的内存地址而非内容,地址相同则对象相同。只不过本题if括号内"= ="两边是基本数据类型,此时单纯变成比较两个字符的值是否相同,若相同则为True,反之为False。
2018-07-27 回复 有任何疑惑可以回复我~
#3

qq_殷少_04114250

并不是,==比较的就是地址,只有a.quals("b");才是在比较a和b俩个字符串是否相等,只不过比较单个字符的时候单个字符并没有地址,所以此时比较的是俩个字符值是否相等。下回如果拿不准麻烦别回答,刚开始学很容易误入歧途
2018-09-24 回复 有任何疑惑可以回复我~

这里两个基本数据的地址相同

0 回复 有任何疑惑可以回复我~

单个值的时候,比如数字或者字符,就是直接比较内容了

1 回复 有任何疑惑可以回复我~

如果(a==b)为true,那么a和b是存在同一个内存空间的,a和b的地址指向的是同一个值,如果a和b分别被new了一个新对象,各自开辟了一个新的内存空间,那么他们值存放的位置就不一样,即使相同的值也是flase

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这个==不是比较地址的吗。=

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信