用equals呗因为equals是比较的内容是否相等
解决方案 »
- 软件工程试题求解答?求大家给个指导
- JPA 菜鸟级问题 什么是持有端、什么是反向端
- 麻烦牛人帮忙看一下:用一个按钮来调用控件的问题
- struts判断标签
- 各种开源工作流比较,高手进来说两句,说者有分!!!
- Tomcat 配置 mysql连接池 在jsp中连接时出现问题
- 谁能不能给我用通俗的语言讲解一下拦截器啊?
- JPA查询出来的结果没有一个实体类与之对应如何解决?
- 【Java开源 内容管理系统(CMS)】谁对这个给讲解下,小弟我初步接触这个,现在头晕了!!!!
- DataSource 与 TxDataSource的区别 ?
- 设计问题,导致一个文件夹下放了10万多个小文件,考虑到读取可能越来越慢,咋处理
- WEB服务器端是标准SSH框架的,怎么调用其中的service方法?一直空指针错误
equals比较的是String的值——内容;
String a = "";
String b = "";
if(a != null && b !=null){
if(a.equals(b))
return true;
else
return false;
}else if(a == null && b==null){
return true;
}else{
return false;
}
“equals”性能差,但通用。(为什么性能差,可以看源代码)String s1 = "www.chinaot.com";
String s2 = "www.chinaot.com";
s1==s2为true,原因是编辑器将"www.chinaot.com"放进常量池,s2也是常量,这时就不必再放,而是用前常量的拘留值,所以两者是同一个值。类似一个业务中的应用:
String color = "red";
color == Color.RED.name() //为trueString s3 = "www.chinaot.com";
String s4 = new String("www.chinaot.com");new String()看作一个对象,它引用指向了前常量的拘留值。但它本身也是一个引用赋给了s4,因此s3和s4不是指向到同一个地方的,这里就必须用equals来对每个字符进行比较,也是性能差之原因。
1行代码搞定,你用了10行:
return a != null && a.equals(b);
String s1 = "www.chinaot.com";
String s2 = "www.chinaot.com";
s1==s2为true至于实现方法用的是常量管理,还是操作符重载,就不知道了,
仅供参考。
1行代码搞定,你用了10行:
return a != null && a.equals(b);字符串比较永远使用equals
8楼的这个在a,b同时为null时结果是错的。
1行代码搞定,你用了10行:
return a != null && a.equals(b);字符串比较永远使用equals
8楼的这个在a,b同时为null时结果是错的。
你知道Java的短路运算吗? return a != null && a.equals(b); 这里a == null时,&&后面的就不会进行,直接返回false,如果b为空,是允许equals空对象的。
唉,这坛里怎么有连基本语法都没学通的就来问问题啊。
1行代码搞定,你用了10行:
return a != null && a.equals(b);字符串比较永远使用equals
8楼的这个在a,b同时为null时结果是错的。
你知道Java的短路运算吗? return a != null && a.equals(b); 这里a == null时,&&后面的就不会进行,直接返回false,如果b为空,是允许equals空对象的。
唉,这坛里怎么有连基本语法都没学通的就来问问题啊。
public static void main(String[] args) {
String a = null;
String b = null;
boolean test = a != null && a.equals(b);
System.out.println(test);
}输出结果: false
1行代码搞定,你用了10行:
return a != null && a.equals(b);字符串比较永远使用equals
8楼的这个在a,b同时为null时结果是错的。
你知道Java的短路运算吗? return a != null && a.equals(b); 这里a == null时,&&后面的就不会进行,直接返回false,如果b为空,是允许equals空对象的。
唉,这坛里怎么有连基本语法都没学通的就来问问题啊。
public static void main(String[] args) {
String a = null;
String b = null;
boolean test = a != null && a.equals(b);
System.out.println(test);
}输出结果: false你的意思是两个空值能相等?
比如:String str1 = new String("123");
String str2 = new String("123");
你可以使输出试试,都是“123”,然后再用==试试看看肯定是返回false的 如果像下面这么写,同样两个字符串的结果都是“123”,但是用==却是返回true的
String str1 = "123";
String str2 = "123";
上面两种情况用equals比较返回的都是true。所以对于String比较 通常使用equals。