一、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通用方法相关推荐

  1. Java Generics示例教程 - 通用方法,类,接口

    Java Generics示例教程 - 通用方法,类,接口 Java Genrics是Java 5中引入的最重要的功能之一.如果您一直在使用Java Collections 对于版本5或更高版本,我确 ...

  2. java基础 ArrayList集合基本方法演示

    java基础 ArrayList集合基本方法演示 import java.util.ArrayList; import java.util.Iterator;public class ArrayLis ...

  3. Java基础 五 方法

    方法 1.1      方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢 ...

  4. 面渣逆袭:Java基础五十三问,快来看看有没有你不会的

    这节我们回到梦开始的地方--Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下.想一下,总不能张口高并发.闭口分布式,结果什么是面向对象,说不清,那多少有点魔幻.所以赶紧来看看 ...

  5. 详解Java中的Object.getClass()方法

    详解Object.getClass()方法,这个方法的返回值是Class类型,Class c = obj.getClass(); 通过对象c,我们可以获取该对象的所有成员方法,每个成员方法都是一个Me ...

  6. Java基础知识之equals方法

    <Java核心技术> 1.equals方法介绍以及重写 Object类中的equals方法是用于检测两个对象是否相等,在Object类中equals方法的具体实现是确定两个对象引用是否相等 ...

  7. JAVA基础语法:函数(方法)、类和对象

    文章目录 函数 static修饰符 类和对象 了解其他JAVA 常用API和算法点这里 >> https://blog.csdn.net/GD_ONE/article/details/10 ...

  8. Java解析excel的通用方法--基础版

    提出问题: 通过销售地图项目和目前的评分系统的项目都需要用到解析excel,并且每次因为excel中列名的不同和对应的实体类的不同,每一次都需要重新写一个解析excel的方法,代码之长很复杂也很麻烦写 ...

  9. java基础.0——Object类

    从这篇文章起就正式开始java学习之旅了.java中,万物皆对象,所以第一篇先学习java的Object类,循序渐进. 一.getClass() 1 public final native Class ...

最新文章

  1. python搜题程序_智慧树Python程序设计基础搜题公众号
  2. 信号量 互斥量 条件变量
  3. js实现对象完美克隆
  4. Runtime底层原理--Runtime简介、函数注释
  5. redis的学习资源
  6. Linux-Vim使用技巧
  7. mysql 数学函数
  8. android crop 大图,com.android.camera.action.CROP 实现图片剪裁
  9. 计算机美国学游戏开发,【工程与计算机】一石二鸟:开发游戏为申美国名校加码...
  10. matlab 读取视频出现的问题
  11. 深度学习3-tensorflow2.0模型训练-自定义模型训练
  12. linux系统进去dev sdb6,linux书上划的题的答案
  13. java提供两种处理异常的机制_Java的异常机制分析及处理办法
  14. JavaWebServlet学生教师信息管理系统【JavaWeb】Servlet+Mysql+Jsp+Tomcat
  15. 查看本地MSN帐号和密码
  16. 中巴地球资源(CBERS)卫星系列介绍
  17. 厨师服识别yolov5明厨亮灶
  18. 【洛谷 2888】牛栏
  19. 技师学院计算机老师,技师学院计算机工程系组织开展观摩课活动
  20. 小麦苗微信公众号文章链接地址

热门文章

  1. AOP实现Controller参数日志
  2. 关于jsp页面传值乱码问题
  3. 开源:Sagit.Framework For IOS 开发框架
  4. ELK集群的搭建和Elasticsearchd api的简单使用
  5. FreeMarker 自动转义和格式化HTML和XML输出,预防xss
  6. 有点烦,不知道如何开始准备评测师考试?
  7. 实例讲解《Microsoft AJAX Library》(2):DomEvent类
  8. Route Flap Dampening
  9. Hive学习笔记 —— Hive的安装
  10. 【LDA学习系列】Dirichlet分布python代码