A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© MGC 中级黑马   /  2014-8-6 17:16  /  3105 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s={a};
想请问"a".equals(s)与s.equals("a")的区别

21 个回复

倒序浏览
s.equals("a")中的s可能为null.可能抛空指针异常

点评

学习了~  发表于 2014-8-6 21:02
回复 使用道具 举报 1 0
表示刚看到异常…………不懂。。。。
回复 使用道具 举报

看不懂。。、
第一句到底什么意思。。
回复 使用道具 举报
戒风 来自手机 中级黑马 2014-8-6 20:33:40
报纸
不懂,这是哪块的问题?
回复 使用道具 举报
"a".equals(s) 这个因为肯定可以点出equals方法与s相比较,而s.equals("a")这个如果s里为空,因为空根本点不出equals方法,所以一般这样判断的时候,最好还是用"a".equals(s) 这种写法:lol
回复 使用道具 举报
表示语法错误,希望附上源码
回复 使用道具 举报
因为s是一个变量,所以s可能为空,则s.equals("a")运行时可能抛空指针异常;"a"表示一个字符串对象,不可能为空,所以"a".equals(s)运行是不会跑空指针异常。
回复 使用道具 举报
s可能为空
回复 使用道具 举报
MGC 中级黑马 2014-8-7 00:22:09
10#
as_heima 发表于 2014-8-6 20:47
"a".equals(s) 这个因为肯定可以点出equals方法与s相比较,而s.equals("a")这个如果s里为空,因为空根本点 ...

好的,明白了谢谢:handshake
回复 使用道具 举报
hmid 来自手机 中级黑马 2014-8-7 00:59:36
11#
沙发说的没错
回复 使用道具 举报
M单色调 来自手机 中级黑马 2014-8-7 08:30:37
12#
点前常用变量,这是编码习惯!主要是为了防止空指针异常!
回复 使用道具 举报
怎么回事啊
回复 使用道具 举报
相等吧  是吗
回复 使用道具 举报
小小菜鸟007 来自手机 初级黑马 2014-8-7 09:13:13
15#
第一种不会抛异常吗?
回复 使用道具 举报
s是一个变量,所以s可能为空,则s.equals("a")运行时可能抛空指针异常;"a"表示一个字符串对象,不可能为空,所以"a".equals(s)运行是不会跑空指针异常。
回复 使用道具 举报
后者需要先判断s是否为null,前者不需要
回复 使用道具 举报
{:3_48:}......................
回复 使用道具 举报
路过 2楼 正解!!
回复 使用道具 举报
常量放前面
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马