1、Object类

  1. equals 方法

    • == 和 equals 的对比

      1. == 是一个比较运算符
      2. == 既可以判断基本类型,又可以判断引用类型
      3. == 如果判断的是基本类型,判断的是值是否相等
      4. == 如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象
    • equals:是Object类中的方法,只能判断引用类型
    • 默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等
    • String 类的 equals方法,把Object的equals方法重写了,变成了比较两个字符串是否相同
    • Object 的equals 方法默认就是比较对象地址是否相同
    • Integer 也重写了Object 的equals 方法,变成了判断两个值是否相同
  2. hashCode 方法

    • 提高具有哈希结构的容器的效率
    • 两个引用,如果指向的是同一个对象,则哈希值肯定是一样的
    • 连个引用,如果指向的是不同对象,则哈希值是不一样的
    • 哈希值主要根据地址号来的,不能完全将哈希值等价于地址
    • 后面在集合中,hashCode 如果需要的话,也会重写
  3. toString 方法

    • 默认返回:全类名 + @ + 哈希值的十六进制,子类往往重写toString方法,用于返回对象的属性信息

    • 重写toString方法,打印对象或拼接对象时,都会自动调用该对象的toString形式

    • 当直接输出一个对象时,toString 方法会被默认的调用

      System.out.println(monster); //就会默认调用 monster.toString()

  4. finalize 方法

    • 当对象被回收时,系统自动调用该对象的finalize方法,子类可以重写该方法,做一些释放资源的操作
    • 什么时候被回收:当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁该对象前,会先调用 finalize 方法
    • 垃圾回收机制的调用,是由系统来决定(即有自己的GC算法),也可以通过System.gc() 主动触发垃圾回收机制
    • 我们在实际开发中,几乎不会运用 finalize ,所以更多的是应付面试
    1. public class Finalize {
    2. public static void main(String[] args) {
    3. Car bmw = new Car("宝马");
    4. //这时 car对象就是一个垃圾,垃圾回收器就会回收(销毁)对象,在销毁对象前,会调用该对象的finalize方法
    5. //,程序员就可以在 finalize中,写自己的业务逻辑代码(比如释放资源,数据库连接,或者打开文件...)
    6. //,如果程序员不重写 finalize ,那么就会调用 Object类的 finalize,即默认处理
    7. //,如果程序员重写了 finalize ,就可以实现自己的逻辑
    8. bmw = null;
    9. System.gc(); //主动调用垃圾回收器
    10. System.out.println("程序退出...");
    11. }
    12. }
    13. class Car {
    14. private String name;
    15. public Car(String name) {
    16. this.name = name;
    17. }
    18. //重写finalize方法
    19. @Override
    20. protected void finalize() throws Throwable {
    21. //super.finalize();
    22. System.out.println("我们销毁 汽车" + name);
    23. System.out.println("释放了某些资源...");
    24. }
    25. }
    26. /*
    27. 运行结果
    28. 程序退出...
    29. 我们销毁 汽车宝马
    30. 释放了某些资源...
    31. */

Java SE Object类的更多相关文章

  1. Java面向对象 Object类 内部类

     Java面向对象 Object类    内部类 知识概要:                 一:Object类                 二:内部类 匿名内部类的写法 1.Object O ...

  2. Java之Object类和常用的API

    Object类和常用的API 学习过程中的笔记,涉及到Objetc中的equals方法和toString方法,日期类Date,日历类Calendar,日期格式化类SimpleDateFormat以及基 ...

  3. Java中Object类hashCode的底层实现

    Java中Object类hashCode的底层实现 openjdk\jdk\src\share\native\java\lang\Object.c 42 static JNINativeMethod ...

  4. Java 之 Object 类

    一.Object 概述  java.lang.Object 类是 Java 语言中的根类,即所有类的父类. 在对象实例化的时候,最终找的父类就是 Object. 如果一个类没有特别指定父类,那么默认则 ...

  5. Java之Object类用法总结

    Object类概述: 1.Object类是所有Java类的根父类. 2.如果在类的声明中未使用extends关键字指明其父类, 则默认父类为java.lang.Object类. Object类主要结构 ...

  6. java.lang.Object类与equals()及toString()的使用

    1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 3.Object类中的功能(属性.方法)就具有通用 ...

  7. java之Object类介绍

    1.Object类是所有java类的基类 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类,ex: public class Person{ ~~~~~ } 等价于 p ...

  8. 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)

    java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读 ...

  9. JDK1.8源码(一)——java.lang.Object类

    本系列博客将对JDK1.8版本的相关类从源码层次进行介绍,JDK8的下载地址. 首先介绍JDK中所有类的基类——java.lang.Object. Object 类属于 java.lang 包,此包下 ...

随机推荐

  1. 719. 找出第 K 小的数对距离

    719. 找出第 K 小的数对距离 这道题其实有那么一点二分猜答案的意思,也有很多类似题目,只不过这道题确实表达的不是很清晰不容易想到,题没问题,我的问题.既然是猜答案,那么二分边界自然就是距离最大值 ...

  2. 从 1.5 开始搭建一个微服务框架——日志追踪 traceId

    你好,我是悟空. 前言 最近在搭一个基础版的项目框架,基于 SpringCloud 微服务框架. 如果把 SpringCloud 这个框架当做 1,那么现在已经有的基础组件比如 swagger/log ...

  3. Tapdata 实时数据中台在智慧教育中的实践

      摘要:随着教育信息化的推进,智慧校园建设兴起,但在实施过程中面临数据孤岛.应用繁多.数据再利用等方面挑战,而 Tapdata 的实时数据中台解决方案,能够高效地解决智慧校园实施中的基础数据问题. ...

  4. SHT11和SHT21传感器

    1.传感器概述 SHT11和SHT21为瑞士Sensirion公司生产,精度和测量范围较广,但价格较高.SHT11和SHT21是具有IIC总线接口的单片全校准数字式相对湿度和温度传感器.该传感器采用独 ...

  5. 数据结构-二叉树(Binary Tree)

    1.二叉树(Binary Tree) 是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根节点和两棵互不相交的,分别称为根节点的左子树和右子树的二叉树组成.  2.特数二 ...

  6. 【cartogarpher_ros】三: 发布和订阅雷达scan信息

    上一节介绍和测试了cartographer的官方demo. 本节会编写ros系统中,最常用的激光雷达LaserScan传感数据的订阅和发布,方便在cartographer中加入自己的数据进行建图与定位 ...

  7. Map接口中的常用方法和Map集合遍历键找值方式

    Map接口中定义了很多方法,常用的如下: public V put(K key,V value) 将指定的值与此映射中的指定键相关联(可选操作) V remove(Object key); 如果此映射 ...

  8. BUCK 电路PSIM仿真模型搭建之一 (PI模块稳定性分析)

    1.  利用PI 模块仿真BUCK 电路电流环 在调制通道上未加入延迟环节时,无论KP, KI 参数如何调整系统都是稳定的 仿真结果: 在调制通道上引入 一个开关周期的延迟 系统出现明显的震荡情况,说 ...

  9. web 前端 基础HTML知识点

    web系统架构体系 B/S(Browser/Server):浏览器实现 优点: 规范.使用方便.本身实现成本低 容易升级.便于维护 缺点: 没有网络,无法使用 保存数据量有限,和服务器交互频率高.耗费 ...

  10. Solution -「HDU」Professor Ben

    Description 有 \(Q\) 个询问.每次给定一个正整数 \(n\),求它的所有因数的质因数个数的和. Solution 就讲中间的一个 Trick. 我们定义正整数 \(x\) 有 \(f ...