a==null和a.equals("null")有什么区别?
Stringa=request.getParameter("state");在页面里,为什么a.equals("null")为true,而a==null为false,a为...
String a = request.getParameter("state");
在页面里,为什么a.equals("null")为true,而a==null为false,
a为定义的一个接收传入参数的字符串,有知情者相劳解答一下. 展开
在页面里,为什么a.equals("null")为true,而a==null为false,
a为定义的一个接收传入参数的字符串,有知情者相劳解答一下. 展开
2个回答
2013-06-09
展开全部
String a="XXX";
equals 是值比团拿激较,==是比较内存
类似这样的声明表明已经分配了空间,再用a==null来判断,显得多余
""是空字符串,但是也是有内存空间的,而null是空对象。
对于字符串,用==和用equals实际上是一样的塌袜。完全没有必要得用两次判断敏橡。
你可以这么理解:
A==B,比较句柄,就是比较变量A,B的地址存放的东西,比如int A=0;String B="bbbb";那么变量A的地址方的就是0,B的地址却是放着存放"bbbb"的地址,比如是#FFFF000之类的。所以A==B就是比较0和FFFF000啦。
而A.equals(B),就是在A和B都是引用(对象句柄,就是存放了对象地址啦)时,比较A,B存放的地址里的内容。比如A="aaaa",b="aaaa",两个"aaaa"不管是不是同一个,A.equals(B)都是真。
equals 是值比团拿激较,==是比较内存
类似这样的声明表明已经分配了空间,再用a==null来判断,显得多余
""是空字符串,但是也是有内存空间的,而null是空对象。
对于字符串,用==和用equals实际上是一样的塌袜。完全没有必要得用两次判断敏橡。
你可以这么理解:
A==B,比较句柄,就是比较变量A,B的地址存放的东西,比如int A=0;String B="bbbb";那么变量A的地址方的就是0,B的地址却是放着存放"bbbb"的地址,比如是#FFFF000之类的。所以A==B就是比较0和FFFF000啦。
而A.equals(B),就是在A和B都是引用(对象句柄,就是存放了对象地址啦)时,比较A,B存放的地址里的内容。比如A="aaaa",b="aaaa",两个"aaaa"不管是不是同一个,A.equals(B)都是真。
2013-06-09
展开全部
a==null,是说a这个变量还没有内容游指橘,也就是a为空
a.equals("null")为true是说字符串a的内神团容为逗掘“null”这个字符串。应该如此。
a.equals("null")为true是说字符串a的内神团容为逗掘“null”这个字符串。应该如此。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询