请教,
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.   

    我用"y".equals(c);
    避免空指针
      

  2.   

    不好意思,刚才贴错了。
    2、判断一个字符串类型的c是否为某一字符比如"Y"的时候,下面哪种方法好,执行效率高,为什么? 
    c.endsWith("Y"); 
    "y".equals(c); 
    c   ==   "Y"; 楼上的,为什么哦,效率上来说。
    只是这两种情况我见我们老大一般都用第一种
    paramUtils.isNull(Model.getParam()); 
    c.endsWith("Y"); //在c确定不为空的情况下。
      

  3.   

    我试过了,==那个最快,比前几种好多了,这应该只涉及字符的比较,其它的都是java 里面封装的方法,内部会执行更多的操作,所以应该慢点吧,也不知道对不对。
      

  4.   

    1.一直用(aString==null)判断是否空
      感觉这种最简单的判断会比调用类、对象方法快一些。2.一直在使用("result".equals(aAttr))判断是否相等
      此代码等价于(aAttr!=null && aAttr.equals("result"))
      但是当要比较的内容不是"result"之类的固定字符串时,还是要用下边的那种方法。
      

  5.   

    1、==null速度要快很多,因为只需要比较对象的地址即可
    2、equals哪个写在前面无所谓的,==比较的是地址
      

  6.   

    同意7楼的
    不过重申,一定要用 "result".equals(aAttr); 千万不要写成 aAttr.equals("result"); 否则一旦aAttr==null, 会报 null pointer Exception 的!
      

  7.   

    1 是否为空
    个人一般用 a==null
    但是equals方法的效率应该也是不错的。
    虽然有以及方法调用但是equals方法的第一句就是
    if(this == obj) return true;
    2 相等的判断
    "Y".equals(obj)
    是最常用的,楼上几位都说得很明白了。
    obj=="Y"
    这条语句比较的是地址,不能用来做相等判断。
    obj.endsWith("Y"); 
    和equals的速度应该差不多。
    消费时间都是一个循环 就是字符串长度n
    不过obj.endsWith("Y"); 显然可读性较差容易引起误解,维护性不好。