黑马程序员技术交流社区
标题:
关于equals的方法的问题,求指点迷津
[打印本页]
作者:
yanzhigang
时间:
2013-5-22 21:40
标题:
关于equals的方法的问题,求指点迷津
在使用equals方法的时候,如下(username是一个参数)username.equals("admin")
和"admin".equals(username)有区别吗?请大神们指点迷津.
作者:
棉/mg花/x糖
时间:
2013-5-22 22:04
楼主,您好,我来回答您这个问题。
坦率的说,但从最终结果来说,是等价的,无任何区别。
唯一的区别在于,引用euqals()方法的对象(变量)不同!!
一个是在
编译时就加载进内存的字符串变量"admin",
一个是
字符串对象
。
这里,两条语句的用法应该是根据具体语境来决定具体用法。
作者:
yanzhigang
时间:
2013-5-22 22:45
我感觉是这样的 :一般情况下没有区别;但是不排除个别情况的出现. 当username是null的时候,username.equals("admin")
在编译或者运行的时候应该会报错吧 .而"admin".equals(username)则不会报错. 是不是这样啊?
作者:
火之意志
时间:
2013-5-22 23:23
楼主童鞋,你的感觉是对的,,当username.equals("admin")时,username作为参数调用equals()方法,在极端情况下,也就是username==null;这个时候username是空指针,调用equals()方法,在编译是会提醒java.lang.NullPointerException异常,呵呵而'admin".equals(username)则不会报错.
作者:
梦想蓝色天空
时间:
2013-5-23 00:16
同意2楼3楼说法。把常量放到equals前面是为了防止username为null时,造成值为null的变量与常量比较 发生NullPointerException
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2