Java常用类(二)

常用类(二)

Object类

  • 超类,基类,所有类的直接或间接父类,位于继承树的最高层
  • 任何类,如没有书写extends显示继承某个类,都默认直接继承Object类,否则为间接继承
  • Object类中所定义的方法,是所有对象都具备的方法
  • Object类型可以存储任何对象
    • 作为参数,可接受任何对象
    • 作为返回值,可返回任何对象

getClass()方法

public final Class getClass(){}
  • 返回引用存储的实际对象类型
  • 应用:通常用于判断两个引用中实际存储对象类型是否相同
package common.common02;public class Student {private  String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int  getAge() {return age;}public void setAge(int age) {this.age = age;}
}
package common.common02;public class TestStudent {public static void main(String[] args) {Student s1 = new Student("aaa",20);Student s2 = new Student("bbb",22);//判断s1和s2是不是同一个类型Class class1 = s1.getClass();Class class2 = s2.getClass();if(class1==class2){System.out.println("s1和s2属于同一种类型");}else {System.out.println("s1和s2不是同一种类型");}}
}

hashCode()方法

public int hashCode(){}
  • 返回对象的哈希码值
  • 哈希值根据对象的地址或字符串或数字使用hash算法计算处理的int类型的数值
  • 一般情况下相同对象返回相同哈希码
package common.common02;public class TestStudent {public static void main(String[] args) {Student s1 = new Student("aaa",20);Student s2 = new Student("bbb",22);//hashCode方法System.out.println(s1.hashCode());//990368553System.out.println(s2.hashCode());//1096979270Student s3=s1;System.out.println(s3.hashCode());//990368553}
}

toString()

public String toString(){}
  • 返回该对象的字符串表示(表现形式)
  • 可以根据程序需求覆盖该方法,如:展示对象的各个属性值

重写toString()

@Override
public String toString() {return name+":"+age;
}
System.out.println(s1.toString());
System.out.println(s2.toString());

equals()方法

public boolean equals(Object obj){}
  • 默认实现为(this==obj),比较两个对象地址是否相同
  • 可进行覆盖,比较两个对象的内容是否相同。

equals()方法覆盖步骤

  • 比较两个引用是否指向同一个对象
  • 判断obj是否为null
  • 判断两个引用指向的实际对象类型是否一致
  • 强制类型转换
  • 依次比较各个属性值是否相同
Student s4 = new Student("小明",17);
Student s5 = new Student("小明",17);
System.out.println(s4.equals(s5));//false,地址不同,改写后,返回true

改写方法

public boolean equals(Object obj) {//判断两个对象是否是同一个值if (this==obj){return true;}//判断obj是否为nullif(obj==null){return false;}//判断是否为同一个类型//instanceof 判断对象是否为同一种类型if(obj instanceof Student){//4.强制类型转换Student s=(Student) obj;//5.比较属性if(this.name.equals(s.getName())&&this.age==s.getAge()){return true;}}return false;
}

finalize()方法

  • 当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象,进入回收队列
  • 垃圾对象:没有有效引用指向此对象时,为垃圾对象
  • 垃圾回收:由GC销毁垃圾对象,释放数据存储空间
  • 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象
  • 手动回收机制:使用System.gc();通知JVM执行垃圾回收

重写

@Override
protected void finalize() throws Throwable {System.out.println(this.name+"对象被回收了");
}

测试

package common.common02;public class TestStudent2 {public static void main(String[] args) {
//        Student s1 = new Student("aaa",20);
//        Student s2 = new Student("bbb",20);
//        Student s3 = new Student("ccc",20);
//        Student s4= new Student("ddd",20);
//        Student s5 = new Student("eee",20);
//        //回收垃圾
//        System.gc();
//        System.out.println("回收垃圾");//未被回收new Student("aaa",20);new Student("bbb",20);new Student("ccc",20);new Student("ddd",20);new Student("eee",20);System.gc();System.out.println("回收垃圾");//被清理}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/803098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言题目:数组寻找最小绝对值

题目描述 输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。 输入格式 十个数 输出格式 交换后的十个数 样例输入 10 2 30 40 50 60 70 80 90 100 样例输出 10 100 30 40 50 60 70 80 90 2 代码解析 包含…

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开 #/bin/bash #该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开放来哪些端口 #用telnet方式 IP$1 #IP119.254.3.28 #获得IP的前…

BUUCTF刷题十一道(12)SSTI专题一

文章目录 学习文章[Flask]SSTI[GWCTF 2019]你的名字[第三章 web进阶]SSTI[pasecactf_2019]flask_ssti[NewStarCTF 公开赛赛道]BabySSTI_One[Dest0g3 520迎新赛]EasySSTI[NewStarCTF 公开赛赛道]BabySSTI_Two[NewStarCTF 公开赛赛道]BabySSTI_Three[GYCTF2020]FlaskApp[CSCCTF 2…

网易云歌曲评论抓取

网易云歌曲评论爬取 步骤1.找到一首歌曲2.按下F12键打开开发者模式,对其进行抓包3.查找获得评论数据的接口4.对获得评论数据接口进行分析5.构建加密函数方法一方法二运行结果全部代码使用Js文件只使用python新的代码小结与展望这次的任务是获取网易云音乐下面的评论,涉及的知…

List接口(1) | ArrayList

参考阅读:ArrayList 源码分析 一、特点 ArrayList 继承于 AbstractList ,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口,具有以下特点: 支持添加,删除和查找操作支持随机快速访问&#xff…

前端ocr技术:electron+vue3中使用tesseract插件识别图片中字符

同学们可以私信我加入学习群! 正文开始 前言一、electron各种csp问题二、试用插件总结 前言 项目需要ocr技术识别图片中的中文字符,本来这部分是后端的工作,但是因为各种原因,决定前端也做一个版本。 在ai时代之前,o…

基于spring boot的漫画之家系统

基于spring boot的漫画之家系统设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件&…

pta L1-012 计算指数

L1-012 计算指数 分数 5 全屏浏览 切换布局 作者 陈越 单位 浙江大学 真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2n。不难吧? 输入格式: 输入在一行中给出一个不超过 10 的正整数 n。 …

Java排序算法

冒泡排序 相邻两个元素比较,每次排序获得一个当前排序区间的最大值 // 冒泡排序 // 外层循环每次最后一个元素已经是最大的了,所以每次循环都减少一个元素 for (int i arr.length - 1; i >0; i--) {// 内层循环每次都是从第一个元素开始,…

鲁棒线性模型估计(Robust linear model estimation)

鲁棒线性模型估计 1.RANSAC算法1.1 算法的基本原理1.2 迭代次数N的计算1.3 参考代码 参考文献 当数据中出现较多异常点时,常用的线性回归OLS会因为这些异常点的存在无法正确估计线性模型的参数: W ( X T X ) − 1 X T Y \qquad \qquad W(X^TX)^{-1}X^T…

力扣热题100_链表_19_删除链表的倒数第 N 个结点

文章目录 题目链接解题思路解题代码 题目链接 19. 删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2&am…

数据结构—图

图的基本概念 图就是由顶点的有穷非空集合和顶点之间的边组成的集合。通常表示为:G(V,E),其中,G 表示一个图,V 表示顶点的集合,E 表示边的集合。 顶点 图中的数据元素,我们称之为顶点,图至少有…

2024年3月电子学会青少年软件编程 中小学生Python编程等级考试一级真题解析(判断题)

2024年3月Python编程等级考试一级真题解析 判断题(共10题,每题2分,共20分) 26、turtle 画布的坐标系原点是在画布的左上角 答案:错 考点分析:考查turtle相关知识,turtle画布坐标系是在画布的…

KNN分类算法的MATLAB实现以及可视化

一、KNN简介 KNN算法,即K-Nearest Neighbors,是一种常用的监督学习算法,可以用于分类问题,并且在实际应用中取得了广泛的成功。 二、KNN算法的基本原理 对于给定的测试样本,KNN算法首先计算它与训练集中所有样本的距…

服务器硬件基础知识解析

导言 在当今信息化时代,服务器扮演着至关重要的角色,它们是存储、处理和传输数据的关键设备。本文将介绍服务器硬件的基础知识,包括服务器的组成部分、硬件选型和性能评估等内容,旨在帮助读者更好地理解和应用服务器技术。 服务…

【数据库】规划与分析

目录 1.规划与分析 的步骤(3步)? 2.系统规划与定义 的步骤(4步)? 3.可行性分析 的步骤(4步)?(-表示包括 、和/表示并列) 4.项目规划 的步…

Vue - 你知道Vue2中对象动态新增属性,视图无法更新的原因吗

难度级别:中高级及以上 提问概率:55% 这道题面试官会这样描述,比如有这样一个场景,一个对象里有name属性,可以正常显示在页面中。但后续动态添加了一个age属性,通过调试打印发现对象里的age属性已经添加了上了,但试图中却没有展示出来,…

Axure案例分享—垂直手风琴(附下载地址)

今天分享的案例是Axure8(兼容9和10)制作的垂直手风琴 一、功能介绍 折叠或展开多个面板内容,默认为展开一项内容,点击任一收起的选项,展开面板,其他面板收起二、制作过程 原型是由矩形组件以及动态面板构成, 拖入一…

Collection与数据结构 二叉树(一):二叉树的性质与基本操作

1. 树形结构 1.1 概念1 (了解) 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点&#…

C语言单链表

1. 单链表的概念和结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表与顺序表都属于线性表,顺序表在物理存储结构上是线性的,但是链表在物理存储结构上…