【每日八股】Java基础中面试你必须要掌握问题1

news/2024/7/24 13:34:10 标签: java, 面试, 开发语言

在这里插入图片描述

🔥 个人主页: 黑洞晓威
😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害。## 如何解决浮点数运算的精度丢失问题?

BigDecimal 可以解决精度问题的原因在于它是一个精确的十进制数学运算类,能够提供任意精度的数字表示和运算。与基本数据类型 doublefloat 不同,BigDecimal 不会丢失精度,因为它是使用任意精度的整数分数来表示数字的。

doublefloat 是基于二进制浮点数的表示,这意味着它们在表示一些十进制小数时可能会出现精度丢失。例如,0.1 在二进制中是一个无限循环小数(例如 0.0001100110011...),因此在 doublefloat 类型中存储时,只能近似表示,可能会有舍入误差。

java">BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.9");
BigDecimal c = new BigDecimal("0.8");

BigDecimal x = a.subtract(b);
BigDecimal y = b.subtract(c);

System.out.println(x); /* 0.1 */
System.out.println(y); /* 0.1 */
System.out.println(Objects.equals(x, y)); /* true */

注意:

使用BigDecimal需要用compareTo() 方法比较:

这是因为 equals() 方法不仅仅会比较值的大小(value)还会比较精度(scale),而 compareTo() 方法比较的时候会忽略精度。

重载与重写的区别

重载

发生在同一个类中(或者父类和子类之间),方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。

重写

重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。

  1. 方法名、参数列表必须相同,子类方法返回值类型应比父类方法返回值类型更小或相等,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。
  2. 如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。
  3. 构造方法无法被重写

深拷贝和浅拷贝区别了解吗?什么是引用拷贝?

浅拷贝:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和原对象共用同一个内部对象。

深拷贝:深拷贝会完全复制整个对象,包括这个对象所包含的内部对象。

引用拷贝: 简单来说,引用拷贝就是两个不同的引用指向同一个对象。

image-20240312211651984
参考链接:https://javaguide.cn/

文章内容根据网上内容汇总整理,用于根据自身学习情况进行查漏补缺,大家也不妨看看自己是否还掌握这些知识点,能帮上忙就最好了!😘

在这里插入图片描述


http://www.niftyadmin.cn/n/5423871.html

相关文章

Spring Cloud Alibaba微服务从入门到进阶(二)

Spring Boot配置管理 1、application.properties 2、application.yml 1.内容格式比较: .properties文件,通过 . 来连接,通过 来赋值,结构上,没有分层的感觉,但比较直接。 .yml文件,通过 &…

个人商城系统开源(配置支付宝支付!)

原文地址:个人商城系统开源(配置支付宝支付!) - Pleasure的博客 下面是正文内容: 前言 由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你迷你商城系统进行开源…

面试官:js需要同时发起百条接口请求怎么办?--通过Promise实现分批处理接口请求

如何通过 Promise 实现百条接口请求? 实际项目中遇到需要批量发起上百条接口请求怎么办? 前言 不知你项目中有没有遇到过这样的情况,反正我的实际工作项目中真的遇到了这种玩意,一个接口获取一份列表,列表中的每一项…

打卡--MySQL8.0 二 (用户权限管理)

一、mysql8修改了安全规则,不能像mysql5.7 一次性创建用户并授权,需要分批创建。 1、注意在MySQL8.0版本中创建用户一定要在配置文件中增加如下内容,来兼容旧的程序运行。 default_authentication_pluginmysql_native_password 2、创建用户…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Progress)

进度条组件&#xff0c;用于显示内容加载或操作处理等进度。 说明&#xff1a; 该组件从API version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Progress(options: ProgressOptions<Type>) 创建进度组件&a…

Java通过Excel批量上传数据!!!

一、首先在前端写一个上传功能。 <template><!-- 文件上传 --><el-upload class"upload-demo" drag action"" :on-change"onChange" :auto-upload"false"><el-icon class"el-icon--upload"><up…

解决docker通过volumes挂载文件,宿主机修改后容器内不同步,重启服务才能同步

将文件的权限改为777&#xff0c;即chmod 777 filename。 详细解释在该文章&#xff1a; https://huaweicloud.csdn.net/633114e5d3efff3090b51a5a.html 说明&#xff1a; 这是由于linux系统文件挂载机制导致的。 docker通过volumes挂载文件到容器中&#xff0c;有以下两种方式…

深入解析Java内存模型

一、背景 并发编程本质问题是&#xff1a;CPU、内存以及IO三者之间的速度差异。CPU速度快于内存、内存访问速度又远远快于IO&#xff0c;根据木桶理论&#xff0c;程序性能取决于最慢的操作&#xff0c;即IO操作。这样会出现CPU和内存交互时&#xff0c;CPU性能无法被充分利用…