欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java基础:(五)Object通用方法

发布时间:2025/4/16 java 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java基础:(五)Object通用方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、Object对象的九个方法

getClass();hashCode();equals();clone();toString();notify();notifyAll();wait();finalize。

二、equals()

equals()与==的区别:

  • 对于基本类型,==判断两个值是否相等,基本类型没有equals()方法(八个基本类型);
  • 对于引用类型,==判断两个实例是否引用同一个对象(地址是否相同),而equals()判断引用的对象是否等价(值是否相等)。

对任何不是null的对象x调用x.equals(null)结果都为false;但是x如果为null,x.equals(null)在编译时没有错误,运行时报错。

Integer x = 1; x.equals(null); //结果为false Integer x = null; x.equals(null); //运行报错

三、hashCode()

hashCode()返回散列值,而equals()是用来判断两个实例是否等价。等价的两个实例散列值一定要相同,但是散列值相同的两个实例不一定等价;

在覆盖equals()方法时应当总是覆盖hashCode()方法,保证等价的两个实例散列值也相等。

四、toString()

默认返回 ToStringExample@xxxxxx 这种形式,其中@后面的数值为散列码的无符号十六进制表示。

五、clone()

浅拷贝:拷贝实例和原始实例的引用类型指向同一个对象(相当于同一个对象);

深拷贝:拷贝实例和原始实例的引用类型指向不同的对象(相当于复制了一个新对象)。

使用clone()方法来拷贝一个对象既复杂又有风险,它会抛出异常,并且还需要类型转换;最好不要使用clone(),可以使用拷贝构造函数或者拷贝工厂来拷贝一个对象(相当于复制了一个新对象)。

public class CloneConstructorExample {private int[] arr;public CloneConstructorExample(){arr = new int[10];for(int i=0;i<arr.length;i++){arr[i] = i;}}//拷贝构造函数public CloneConstructorExample(CloneConstructorExample original){arr = new int[original.arr.length];for(int i=0;i<original.arr.length;i++){arr[i] = original.arr[i];}} }

 

转载于:https://www.cnblogs.com/liumilk/p/10524185.html

总结

以上是生活随笔为你收集整理的Java基础:(五)Object通用方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。