关于执行效率(paramUtils,equals,==)

richard_2010 2007-12-17 07:37:43
请教,
1、判断一个Model里字符串是否为空的时候,用下面哪种方法好,执行效率高,为什么?
paramUtils.isNull(Model.getParam());
"null".equals(Model.getParam());
Model.getParam == null;
2、判断一个字符串类型的c是否为某一字符比如"Y"的时候,下面哪种方法好,执行效率高,为什么?
c.endsWith("Y");
equals("Y").c;
c == "Y";
大家回哪种方法好的时候帮忙说说理由撒。thanks
...全文
164 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gump09 2007-12-19
  • 打赏
  • 举报
回复
1 是否为空
个人一般用 a==null
但是equals方法的效率应该也是不错的。
虽然有以及方法调用但是equals方法的第一句就是
if(this == obj) return true;
2 相等的判断
"Y".equals(obj)
是最常用的,楼上几位都说得很明白了。
obj=="Y"
这条语句比较的是地址,不能用来做相等判断。
obj.endsWith("Y");
和equals的速度应该差不多。
消费时间都是一个循环 就是字符串长度n
不过obj.endsWith("Y"); 显然可读性较差容易引起误解,维护性不好。

老紫竹 2007-12-19
  • 打赏
  • 举报
回复
同意7楼的
不过重申,一定要用 "result".equals(aAttr); 千万不要写成 aAttr.equals("result"); 否则一旦aAttr==null, 会报 null pointer Exception 的!
网络咖啡 2007-12-18
  • 打赏
  • 举报
回复
1、==null速度要快很多,因为只需要比较对象的地址即可
2、equals哪个写在前面无所谓的,==比较的是地址
AndyJee 2007-12-18
  • 打赏
  • 举报
回复
1.一直用(aString==null)判断是否空
感觉这种最简单的判断会比调用类、对象方法快一些。

2.一直在使用("result".equals(aAttr))判断是否相等
此代码等价于(aAttr!=null && aAttr.equals("result"))
但是当要比较的内容不是"result"之类的固定字符串时,还是要用下边的那种方法。
轻剑 2007-12-18
  • 打赏
  • 举报
回复
想了解,所以顶起来
richard_2010 2007-12-18
  • 打赏
  • 举报
回复
顶起,期望有人回答
xz10000 2007-12-17
  • 打赏
  • 举报
回复
我试过了,==那个最快,比前几种好多了,这应该只涉及字符的比较,其它的都是java 里面封装的方法,内部会执行更多的操作,所以应该慢点吧,也不知道对不对。
xz10000 2007-12-17
  • 打赏
  • 举报
回复
我也想了解
richard_2010 2007-12-17
  • 打赏
  • 举报
回复
不好意思,刚才贴错了。
2、判断一个字符串类型的c是否为某一字符比如"Y"的时候,下面哪种方法好,执行效率高,为什么?
c.endsWith("Y");
"y".equals(c);
c == "Y";

楼上的,为什么哦,效率上来说。
只是这两种情况我见我们老大一般都用第一种
paramUtils.isNull(Model.getParam());
c.endsWith("Y"); //在c确定不为空的情况下。

sunwei_07 2007-12-17
  • 打赏
  • 举报
回复
我用"y".equals(c);
避免空指针

62,615

社区成员

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

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