【Java】Java核心要点总结 67

news2024/9/24 3:26:15

文章目录

  • 1. 浮点数运运算会有精度损失
  • 2. 构造方法特点 & 不能被重写
  • 3. 接口和抽象类的异同
  • 4. Object 类的常见方法
  • 5. hashCode() 有什么用 为什么要有 hashCode()



在这里插入图片描述

1. 浮点数运运算会有精度损失

这个和计算机保存浮点数的机制有很大关系。我们知道计算机是二进制的,而且计算机在表示一个数字时,宽度是有限的,无限循环的小数存储在计算机时,只能被截断,所以就会导致小数精度发生损失的情况。这也就是解释了为什么浮点数没有办法用二进制精确表示。


2. 构造方法特点 & 不能被重写

● 名字与类名相同。

● 没有返回值,但不能用 void 声明构造函数。

● 生成类的对象时自动执行,无需调用。

构造方法不能被 override(重写),但是可以 overload(重载),所以你可以看到一个类中有多个构造函数的情况。


3. 接口和抽象类的异同

共同点
都不能被实例化。
都可以包含抽象方法。
都可以有默认实现的方法(Java 8 可以用 default 关键字在接口中定义默认方法)。

区别
接口主要用于对类的行为进行约束,你实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调的是所属关系。
一个类只能继承一个类,但是可以实现多个接口。
接口中的成员变量只能是 public static final 类型的,不能被修改且必须有初始值,而抽象类的成员变量默认 default,可在子类中被重新定义,也可被重新赋值


4. Object 类的常见方法

Object类是Java中所有类的根类,它提供了一些常见的方法。以下是一些Object类的常见方法:

equals(Object obj): 判断当前对象与参数obj是否相等,通常需要在自定义类中重写该方法以实现对象之间的比较。

hashCode(): 返回当前对象的哈希码值,用于在哈希表等数据结构中快速查找对象。

toString(): 返回表示当前对象的字符串形式,默认返回对象的类名和哈希码,建议在自定义类中重写该方法以返回更有意义的字符串表示。

getClass(): 返回当前对象的运行时类。

clone(): 创建当前对象的一个副本,通常需要实现Cloneable接口并重写该方法。注意,clone方法是浅拷贝,对于引用类型成员变量需要特别处理才能实现深拷贝。

finalize(): 该方法在对象被垃圾回收器回收之前调用,可以在子类中重写以释放资源或执行其他清理操作。

notify()和notifyAll(): 用于多线程中的线程通信,唤醒等待该对象锁的线程。

wait(): 让当前线程进入等待状态,直到其他线程调用notify()或notifyAll()唤醒该线程。

这些方法是Object类中的一部分,其他还有一些方法用于对象比较、对象锁定等。请注意,某些方法需要结合具体的使用场景和需求进行使用。


5. hashCode() 有什么用 为什么要有 hashCode()

hashCode() 的作用是获取哈希码(int 整数),也称为散列码。这个哈希码的作用是确定该对象在哈希表中的索引位置。

hashCode()定义在 JDK 的 Object 类中,这就意味着 Java 中的任何类都包含有 hashCode() 函数。另外需要注意的是: Object 的 hashCode() 方法是本地方法,也就是用 C 语言或 C++ 实现的,该方法通常用来将对象的内存地址转换为整数之后返回。

作用:减少了 equals 的次数,相应就大大提高了执行速度。



在这里插入图片描述

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

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

相关文章

面试时一定要确认该岗位的直属领导是否在场,如果不在,千万不要接offer,有坑!...

对于有心人来说,面试时可以看出许多隐形信息,比如下面这位网友的提醒: 面试时一定要确认这个岗位的直接汇报领导是否参与了面试,如果没有参与,千万不要接offer! 该职位的直接领导不参与面试,只能…

NLP——Topic Modelling

文章目录 A Brief History of Topic ModelsLatent Dirichlet Allocation (LDA)潜在狄利克雷分布核心思想LDA inputLDA output LDA 如何学习Sampling-based mothods 基于采样的方法Infer Topics For New Documents超参数 Variational methods 变分方法 Ev…

java协同过滤算法的校园二手图书网站springboot vue

用户:(商品推荐算法) 1)首页主要由导航栏、图书展示页、分页所组成。访客能浏览网站上的待出售图书的信息,但是若要购买,收藏图书,查看卖家信息则会自动跳转到登录界面,已经登录的用户则可以浏…

WPS AI最全申请与使用手册;AIGC制作游戏音乐;便宜快捷使用完整版SD;人人都能看懂的ChatGPT原理课 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 面向虚拟世界的生成式AI市场全景图 作者在这篇文章中探讨了生成式AI在虚拟世界的应用,并绘制了 Market Map V3.0 (市场全景…

C++ 有用的资源||19道必须掌握的C++面试题

C 有用的资源 C 有用的资源 以下资源包含了 C 有关的网站、书籍和文章。请使用它们来进一步学习 C 的知识。 C 有用的网站 C Programming Language Tutorials − C 编程语言教程。C Programming − 这本书涵盖了 C 语言编程、软件交互设计、C 语言的现实生活应用。C FAQ −…

chatgpt赋能python:Python中的遍历方法详解

Python中的遍历方法详解 在Python中,遍历是处理数据的常见操作。Python提供了多种遍历方法,本文将逐一介绍这些方法的特点、适用场景及使用方法。 for循环 for循环是Python中最常用的遍历方法之一,可以遍历任何可迭代对象。 # 遍历列表 f…

栈的运用——中缀表达式[Java实现]

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现,有时候有C/C代码。 ⭐如果觉得文章写的…

C++【位图/布隆过滤器—海量数据处理】

文章目录 一、位图(1)位图概念介绍(2)简单模拟实现(3)位图应用 二、布隆过滤器(1)关于布隆过滤器概念及介绍(2)布隆过滤器的使用场景(3&#xff0…

干翻Mybatis源码系列之第十一篇:Mybatis拦截器获取被拦截对象的方法和参数

给自己的每日一句 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽…

DJ4-1 网络层概述

目录 一、网络层提供的功能 二、路由和转发 三、数据平面和控制平面 四、网络层的服务模型 一、网络层提供的功能 网络层实现主机与主机之间的通信 从发送方主机传输报文段到接收方主机: 发送方主机封装报文段 (segments) 为数据报 (datagrams)接收方主机递交…

Linux常用命令——gcov命令

在线Linux命令查询工具 gcov 测试程序的代码覆盖率的工具 补充说明 gcov命令是一款测试程序的代码覆盖率的工具。 语法 gcov(选项)(参数)选项 -h:显示帮助信息; -v:显示版本信息; -a:输出所有的基本块的执行计数…

SpringMVC 中的常用注解和用法

观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 电脑使用的操作系统版本为 Windows 10 目录 前言 Spring Boot Spring MVC 1. MVC 1.1 MVC 和 Spring MVC 之间的关系 2. 创建 Spring MVC 项目 创建一个 SpringMVC 项目 1. new projec…

PyQt学习笔记-使用通用数据库接口QtSql操作SQLite数据库

使用通用的数据库接口的好处是当数据库发生改变时,只需要修改初始化的配置即可,而不用修改对应的更多的代码。 一、QtSql类 QtSql类时的数据库操作接口类,包含如下类: QSql QSqlError QSqlQueryModel QSqlRelationalTableMo…

SQL基础入门-条件查询语句

前言 可以关注我的云原生社区:云原生社区 也可以关注我的英语社区:从零开始学英语 一. 创建数据库并写入数据 1.1 创建数据库 MySQL [school]> create database game; Query OK, 1 row affected (0.01 sec)MySQL [school]> use game Database c…

[PyTorch][chapter 40][CIFAR-10 数据集]

前言: CIFAR-10和CIFAR-100是8000万个微小图像数据集的标记子集。它们由Alex Krizhevsky、Vinod Nair和Geoffrey Hinto收集 目录: CIFAR-10数据集简介 在线下载方式 离线下载方式 一 CIFAR-10数据集简介 CIFAR-10数据集由10个类别的60000张32x32…

碳中和城市建筑能源系统(3):负荷篇(龙惟定)2022

碳中和城市建筑能源系统(3):负荷篇 摘要 本文是碳中和城市建筑能源系统系列文章的第三篇。碳中和城市能源系统要实现“两个替代”,即能源生产的可再生能源替代和能源消费的电力替代。因此有2个关键点对负荷分析提出了要求:一是建筑电气化&a…

网络安全运维-数字取证篇

Volatility使用 使用工具:Autopsy、Volatility、Wireshark 这部分可分为数据分析与取证、内存取证两块内容 一、数据分析与取证 1、wirwshark图形化 wireshark基本操作 过滤器使用 ip.src x.x.x.x 选择源ip为x.x.x.x的数据包 tcp.port xx 选择源或目标端口…

WPF开发txt阅读器13:绑定快捷键实现翻页

文章目录 绑定快捷键翻页功能跳转到首尾章节跳转 txt阅读器系列: 需求分析和文件读写目录提取类💎列表控件与目录字体控件绑定💎前景/背景颜色书籍管理系统💎用树形图管理书籍语音播放💎播放进度显示💎快进…

python数据可视化玩转Matplotlib直方图、箱型图、密度图、正态分布、偏度和峰度

目录 1. 直方图、箱线图和密度图 1.1 直方图 1.2 箱线图 1.3 密度图 2. 正态分布 3. 偏度和峰度 结论 1. 直方图、箱线图和密度图 直方图、箱线图和密度图是数据分析中十分常用的图形。它们可以帮助我们更好地理解数据的分布情况,从而更好地进行数据分析和处…

M1和M2的剪刀差是什么意思?

Scissors difference between M1 and M2. 在市场上流通的货币的数量,用金融术语来讲叫货币供应量。 因为市场上的货币流动性各不相同,长期存款的流动性不如短期存款的强,短期存款的流动性不如现金的强。 所以在统计货币量的时候,标…