请教,
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
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
避免空指针
2、判断一个字符串类型的c是否为某一字符比如"Y"的时候,下面哪种方法好,执行效率高,为什么?
c.endsWith("Y");
"y".equals(c);
c == "Y"; 楼上的,为什么哦,效率上来说。
只是这两种情况我见我们老大一般都用第一种
paramUtils.isNull(Model.getParam());
c.endsWith("Y"); //在c确定不为空的情况下。
感觉这种最简单的判断会比调用类、对象方法快一些。2.一直在使用("result".equals(aAttr))判断是否相等
此代码等价于(aAttr!=null && aAttr.equals("result"))
但是当要比较的内容不是"result"之类的固定字符串时,还是要用下边的那种方法。
2、equals哪个写在前面无所谓的,==比较的是地址
不过重申,一定要用 "result".equals(aAttr); 千万不要写成 aAttr.equals("result"); 否则一旦aAttr==null, 会报 null pointer Exception 的!
个人一般用 a==null
但是equals方法的效率应该也是不错的。
虽然有以及方法调用但是equals方法的第一句就是
if(this == obj) return true;
2 相等的判断
"Y".equals(obj)
是最常用的,楼上几位都说得很明白了。
obj=="Y"
这条语句比较的是地址,不能用来做相等判断。
obj.endsWith("Y");
和equals的速度应该差不多。
消费时间都是一个循环 就是字符串长度n
不过obj.endsWith("Y"); 显然可读性较差容易引起误解,维护性不好。