日期:2014-05-19  浏览次数:20784 次

谁能告诉我这两有什么区别啊,两个判断语句
public class Test {
public static void main(String[] args) {
// String a="11";
// if(a!=null)
//     {
//       if(a.equals(""))
//        System.out.println("等于null1");
//       else      
//         System.out.println("不等于空");
//     }
//     else
//     {
//      System.out.println("等于null2");
//     }




String a="11";
if(a!=null&&!a.equals(""))
    {
          
        System.out.println("不等于空");
    }
    else
    {
     System.out.println("等于null");
    }
}
}
if??java if java 区别

------解决方案--------------------
小伙子,真看不懂你写的什么,也猜不到你想表达什么!
------解决方案--------------------
2个语句基本没什么区别,可能效率有些区别

一般是以下的写法

String a = "11";
if (a != null && !"".equals(a)) {
System.out.println("不等于空");
} else {
System.out.println("等于null");
}

------解决方案--------------------
楼主,null和""是不一样的,
比如声明一个 String str ;
如果说str是null,那么内存根本没创建字符串对象,并由str引用。
如果说str是"",那么确实存在一个由str引用的字符串对象,只不过这个字符串的值是""
,是一个空串。
所以第一个例子是正确的,第二个是错误的。但是,第一个中,System.out.println("等于null1");
System.out.println("等于null2");
null1和null2这个地方就错了。
------解决方案--------------------
区别不大啊,
就是一个是将条件一个个处理,一个是一次性处理所有条件,方法2可以减少代码量
------解决方案--------------------
你这样写本身就有点儿错误,
第一String a="11";//这行代码已经声明了a这个字符串变量,所以a就不可能为NULL,如果a这个字符串是你由参数传递过来的可以进行a是否为NULL的判断。
你第二种算法更快。

------解决方案--------------------
其实一个字符串变量就3重情况:
String a;

1 a=null;
2 a="";
3 a="a"//任意内容。

楼主的第一个方法能分辨出具体 a 是什么。而第二重情况只判断把1,2看成一种情况。无法具体判断是null还是"".
------解决方案--------------------
没什么区别啊,你的无非是分开了判断,逐一判断而已.也可以写到一起判断啊
------解决方案--------------------
其实 a 无非三种情况,

A、a=null;
B、a="";
C、a=某某

你的第二个代码中的if里面是表示C,else表示B、C
两种方式差不多,你想问的是什么区别???效率还是什么??