Java字符串比较

字符串比较
Java代码
String str1="123"; 
String str2="123"; 
str1==str2;   //结果为true 
str1.equals(str2); //结果为true 
 
MyBean mybean=new MyBean(); 
mybean.setStr1("123"); 
mybean.setStr2("123"); 
 
mybean.getStr1()==mybean.getStr2();//结果为false 

字符串比较是经过特殊处理了的,只比较值,而不比较地址,
但这里在bean中的两个字符串,调试可以看到hashcode都是一样的,但地址不一样
而用==是比较地址的,equas是比较值的
所以他们两个是不相等的,经用到这种情况时注意一下,
可将两个字符串传入一个方法进行比较。
Java代码
public static boolean compare(String param1,String param2){ 
        boolean flag=false; 
        if(param1!=param2)flag=true; 
        return flag; 
    } 
 
compare(mybean.getStr1(),mybean.getStr2());//结果为true 

你可能感兴趣的:(java,bean)