sucary

博客园 首页 新随笔 联系 订阅 管理
代码如下:
public class Test {

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
        String str1 = "skr";        
        String str2 
= new String("skr");
        String str3 
= "skr";
        String str4 
= new String("skr");
        Float f1 
= new Float(0.9f);
        Float f2 
= new Float(0.9f);
        Float f3 
= 0.9f;
        
float f4 = 0.9f;
        System.out.println(
"str1==str2: " + (str1 == str2));
        System.out.println(
"str1.eqauls(str2): " + str1.equals((str2)));
        System.out.println(
"str1==str3: " + (str1 == str3));
        System.out.println(
"str2==str4: " + (str2 == str4));
        System.out.println(
"Hashcode:");
        System.out.println(
"str1:" + str1.hashCode() + "; str2:" + str2.hashCode() + "; str3:" + str3.hashCode());
        System.out.println(
"f1 == f2: " + (f1 == f3));
        System.out.println(
"f1.equals(f2): " + f1.equals(f2));
        System.out.println(
"f1 == f3: " + (f1 == f3));
        System.out.println(
"f1 == f4: " + (f1 == f4));
        System.out.println(
"f3 == f4: " + (f3 == f4));
        System.out.println(
"HashCode:");
        System.out.println(
"f1:" + f1.hashCode() + "; f2:" + f2.hashCode() + "; f3:" + f3.hashCode());
    }


}


运行的结果为:
str1==str2: false
str1.eqauls(str2): true
str1==str3: true
str2==str4: false
Hashcode:
str1:113946; str2:113946; str3:113946
f1 == f2: false
f1.equals(f2): true
f1 == f3: false
f1 == f4: true
f3 == f4: true
HashCode:
f1:1063675494; f2:1063675494; f3:1063675494
结论: 对象的引用之间不能直接(==)比较,必须用equals函数。
posted on 2007-10-16 17:05  Su-Cary  阅读(592)  评论(0编辑  收藏  举报