栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java技术栈直通之路系列 1.1 Object类中的常用方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java技术栈直通之路系列 1.1 Object类中的常用方法

1.equals
我们先看Object中的equals方法,发现它是比较对象的地址。

    public boolean equals(Object obj) {
        return (this == obj);
    }

实际开发中我们经常会用到String,Integer等类的equals方法,我们先看看源码:
Integer

//Integer
    public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }

String中的equals:

//String
    public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

我们发现它是对值进行了比较。实际开发中我们可能会重写equals方法。
我们要注意的是equals和==的区别,下面举一个例子。

       String str1=new String("1");
        String str2=new String("1");
        String str3=str2;
        System.out.println(str1==str2);//false
        System.out.println(str1.equals(str2));//true
        System.out.println(str3==str2);//true
        System.out.println(str3.equals(str2));//true

==号比较的是地址,对于引用类型来说,上面的例子的对象地址是不同的,equals比较的是值。

2.hashCode
对hachCode的总结可看下面的小结:

hashCode主要是对对象的内容生成一串整数。
3.finalize
关于finalize可看下面的总结:

finalize方法就相当于C++中的析构函数,在对象销毁时执行,里面可自定义一些内容,比如释放数据库连接等资源。

欢迎一键三连,后续会更新更多关于java技术栈方面的知识。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号