常用类学习

news/2025/1/16 22:32:06/文章来源:https://www.cnblogs.com/arioya/p/18675864

学习视频

object类

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

getClass()方法

  • public final Class<?> getClass(){}
  • 返回引用中存储的实际对象类型
  • 应用:通常用于判断两个引用中实际存储对象类型是否一致

实例

public class Test {public static void main(String[] args) {Person person1 = new Person();Person person2 = new Student();Student student = new Student();Class class1 = person1.getClass();Class class2 = person2.getClass();Class class3 = student.getClass();if (class1 == class2) {System.out.println("class1 == class2");} else {System.out.println("class1 != class2");}if (class2 == class3) {System.out.println("class2 == class3");} else {System.out.println("class2 != class3");}}
}

image

hashCode()方法

  • public int hashCode() {}
  • 返回该对象的哈希码值。
  • 哈希值根据对象的地址字符串数字使用hash算法计算出来的int类型的数值。
  • 一般情况下相同对象返回相同哈希码,

实例

public class Test {public static void main(String[] args) {Person person1 = new Person();Person person2 = new Student();System.out.println(person1.hashCode());System.out.println(person2.hashCode());person1 = person2;System.out.println(person1.hashCode());}
}

image

toString()方法

  • public String toString(){}

  • 返回该对象的字符串表示(表现形式)

  • 可以根据程序需求覆盖该方法,如:展示对象各个属性值。

  • //测试类
    public class Test {public static void main(String[] args) {Person person1 = new Person();Person person2 = new Student();System.out.println(person1.toString());System.out.println(person2.toString());}
    }
    //重写Student类的toString方法
    public class Student extends Person{int name;public String toString() {return "Student'name:" + name;}
    }

image

@之后的值和hashCode()得到的地址相同,只是进制不同。

equals()方法

  • public boolean equals(Object obj) {}
  • 默认实现为(this==obj),比较两个对象地址是否相同。
  • 可进行覆盖,比较两个对象的内容是否相同,
public class Test {public static void main(String[] args) {Person person1 = new Student("张三", 18);Person person2 = new Student("张三", 18);//输出false,因为equals默认对比的是对象的地址,而不是内容(今天面试问了,-_-!)System.out.println(person1.equals(person2));}
}

equals()方法覆盖的步骤

  • 比较两个引用是否指向同一个对象。
  • 判断obj是否为null。
  • 判断两个引用指向的实际对象类型是否一致。
  • 强制类型转换。
  • 依次比较各个属性值是否相同。

实例

public class Student{private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}public boolean equals(Object obj) {//比较两个引用是否指向同一个对象。if (this == obj) return true;//obj是否为空if (obj == null) return false;//判断两个引用指向的实际对象类型是否一致。
//        if (this.getClass() == obj.getClass()) {
//
//        }if (obj instanceof Student) {//强制类型转换Student student = (Student) obj;//判断内容是否一致return this.name == student.name && this.age == student.age;}return false;}
}
//调用类
public class Test {public static void main(String[] args) {Student student1 = new Student("张三", 18);Student student2 = new Student("张三", 18);//重写后返回trueSystem.out.println(student1.equals(student2));}
}

finalize()方法

  • 当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象进入回收队列。
  • 垃圾对象:没有有效引用指向此对象时,为垃圾对象
  • 垃圾回收:由GC销毁垃圾对象,释放数据存储空间。
  • 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象。
  • 手动回收机制:使用System.gc(); 通知JVM执行垃圾回收,也只是通知,回收与否还要看JVM的决定
//实例
Student a = new Student();//不回收
new Student();//会回收

包装类

什么是包装类

  • 基本数据类型所对应的引用数据类型。
  • Object可统一所有数据,包装类的默认值是null。

image

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

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

相关文章

webpack5 从零搭建 vue3 项目

目前 vue3 官网推荐的工具链已经是 vite 了,就算是要使用 webpack 甚至是 webpack5,也可以直接使用 vue-cli。然而之所以写这个,可以当是 webpack5 的一个学习文章。同时也是因为之前有个项目是在 vue3 刚出来的时候使用 vue-cli (那是官网还是推荐使用 webpack,以及但是得…

2025-1-12至16-uniapp初体验

2025-1-12 今天主要就是在熟悉app开发软件应用,发现它的页面开发起来跟我们的web是一样的,初始界面就跟VScode操作一样,毕竟第一步是要做页面,然后它的控制台跟tomcat集成之后使用很像,之后就是复习一下web的css。盒子模型:margin:外边距 控制边框离屏幕的距离(top 上…

谷歌60s视频生成模型Veo的技术亮点

谷歌60s视频生成模型Veo的技术亮点如下: 高分辨率长视频生成 高分辨率输出:能够生成高质量的10谷歌60s视频生成模型Veo的技术亮点如下: 高分辨率长视频生成高分辨率输出:能够生成高质量的1080p分辨率视频,可满足长视频内容制作需求,如用于电影、广告等对画质要求较高的场…

【夸克网盘福利】如何领取1TB免费空间?小白三分钟学会!

Hello 大家好!我是你们的网盘省钱达人,今天给大家带来一个超实用的小技巧——**如何用夸克网盘免费领取1TB的存储空间**!没错,不用花一分钱,就能获得超大容量,随便存视频、照片、大文件,彻底告别“存储焦虑”。教程全程亲测有效,小白也能三分钟学会!废话不多说,快跟着…

Catlike Coding Custom SRP笔记 - SRP项目搭建

什么是SRP? 可编程渲染管线 (Scriptable Render Pipeline) 是 Unity 内置渲染管线的替代方案。 使用 SRP 可以通过 C# 脚本控制和定制渲染流程URP和SRP的区别? URP是基于SRP实现的一套渲染管线(由Unity官方实现,并以模板项目的方式提供给开发者使用)LWRP又是啥? 轻量级渲…

使用 Perspective 为 AI 艺术添加真实世界的深度

使用 Perspective 为 AI 艺术添加真实世界的深度 📖阅读时长:10分钟 🕙发布时间使用 Perspective 为 AI 艺术添加真实世界的深度 📖阅读时长:10分钟 🕙发布时间:2025-01-16近日热文:全网最全的神经网络数学原理(代码和公式)直观解释 欢迎关注知乎和公众号的专栏内…

字节跳动发布开源 Lip Sync AI 模型,视频换声对口型超轻松!

ByteDance新开源模型LatentSync,视频换声对口型超轻松! 阅读时长:9分钟 论文地址ByteDance新开源模型LatentSync,视频换声对口型超轻松!阅读时长:9分钟 论文地址: https://arxiv.org/pdf/2412.09262 发布时间:2025年1月8日字节跳动最近推出了LatentSync,这是一款全新的…

MobaXterm(远程终极工具箱) v24.4汉化专业版

MobaXterm是一款集多种远程功能于一身的工具,它通过支持SSH、Telnet、RDP、VNC等协议,让用户能够轻松远程连接至不同操作系统,如Linux、Unix和Windows。此外,它还具备文件传输功能,支持SCP、SFTP、FTP协议,方便用户在本地与远程设备间传输文件。关键特性图形界面支持:可…

https证书一键自动续期,帮你解放90天限制

前言 前几天网站证书到期,发觉证书颁发每次只能90天有效期,这谁能忍受,于是乎发觉网上有免费的一键续期脚本,真正解放我们的双手。项目如下acme.sh。 期间由于"墙"的原因,踩了很多的坑,此文记录一下踩坑的过程,同时也帮助我们"墙内"的程序员,不需要…

对rpc长连接与短连接的思考

RPC项目中长连接和短连接各有优劣,长连接适用于少量客户端,提高效率;短连接则更适合大量客户端,避免服务器过载。结合L4和L7负载均衡,合理选择连接方式,提升系统性能和稳定性。对rpc长连接与短连接的思考 对于rpc项目,在接受大佬指导的时候曾问过对于长连接和短连接是如…