您的位置:首页 > 运维架构

hadoop学习之hadoop完全分布式集群安装

2014-03-27 15:47 537 查看
Java中String类的比较方法分析

1.==:
在Java中,String是个类而不是类型,这就是为什么String开头字母是大写而不是小写,并且IDE中String没有标蓝显示的原因。
因为String不是类型,所以不能用==做比较。

2.equals:
equals是Object类的方法,用于比较两个对象是不是同一个引用。
public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();

System.out.println(sb1.equals(sb2));//结果为false
}

}
sb1和sb2是两个独立创建的对象,不是同一引用,因此结果为false。但是如果改成sb2引用sb1对象,结果则不同,如下
public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = sb1;

System.out.println(sb1.equals(sb2));//结果为true
}

}
此时,sb2引用sb1,因此用equls做对比是,结果为true。

那么,问题来了:挖掘机技术哪家强?上面说过String是类,为什么两个相同值的String使用equals比较是,结果会为true?
public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "山东技校找蓝翔";
String str2 = "山东技校找蓝翔";

System.out.println(str1.equals(str2));//结果为true
}

}
个人认为,String是有个String池的,str1时就把它写入了String池中,str2是则先会去String池中找有没有“山东技校找蓝翔”,如果有则直接引用,没有再创建。因此实际上str2是str1的引用,所以equals比较结果为true。

3.contains:
contains参数有CharBuffer, Segment, String, StringBuffer, StringBuilder这4中类型。
contains用于检查对象是否包含指定char值序列,听着比较模糊还是用实例吧
public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "山东技校找蓝翔。计算机技术哪家强?";
String str2 = "山东技校找蓝翔";

System.out.println(str1.contains(str2));//结果为true
}

}
因为contains不是比较,而是“包含”关系,所以结果为true。

4.contentEquals:
这个应该是String重写的equals,仅判断内容是否一致,不再考虑是否同一对象,因此下面实例结果为true,尽管是两个不同对象。
public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "山东技校找蓝翔";
StringBuffer sb1 = new StringBuffer("山东技校找蓝翔");

System.out.println(str1.contentEquals(sb1));//结果为true
}

}

5.equalsIgnoreCase:
这个就比较简单了,它是String与String之间的比较,不用考虑对象问题,仅仅是比较两个字符串是否一样,特殊点就是不区分大小写
我就偷个懒,不写实例了。
本文出自 “听雨轩” 博客,请务必保留此出处http://heyijx2.blog.51cto.com/925730/1604287
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: