当前位置: 首页 > news >正文

HoRain云--Java数值处理:Number与Math全解析

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

一、Number 类

为什么需要它?

核心抽象方法(所有子类必须实现)

典型子类要点

二、Math 类

常用方法速查

Math vs StrictMath

三、两者关系 & 选型建议


Java 里的Number​ 和Math​ 都位于java.lang包,是数值处理的两大基础,但定位完全不同——一个管"数值类型的抽象与装箱",一个管"数学运算工具"。


一、Number 类

java.lang.Number是一个抽象类,是所有数值包装类(Integer、Long、Double、Float、Byte、Short)以及BigDecimalBigInteger的父类。

为什么需要它?

Java 8 种基本类型里,数值类有 6 个(byte/short/int/long/float/double),它们不是对象,不能放进集合、不能调方法。Number 给它们套了一层父类,让"数值"也能当对象用(即装箱)。

// 子类举例 Integer i = 10; // extends Number Double d = 3.14; // extends Number BigDecimal bd = new BigDecimal("1.23"); // extends Number

核心抽象方法(所有子类必须实现)

int intValue(); long longValue(); float floatValue(); double doubleValue(); byte byteValue(); // 默认转 int 再强转 short shortValue(); // 默认转 int 再强转

用途:在不同数值类型之间转换(可能丢精度)。

Double d = 3.99; int x = d.intValue(); // 3,直接截断,不是四舍五入

典型子类要点

包装类

缓存范围

备注

Integer

-128 ~ 127

valueOf()走缓存

Long

-128 ~ 127

同上

Byte

全量缓存

就 256 个

Float/Double

无缓存

valueOf()直接 new

Integer a = 127; Integer b = 127; System.out.println(a == b); // true(缓存) Integer c = 128; Integer d = 128; System.out.println(c == d); // false(new 出来的) System.out.println(c.equals(d)); // true(比值,推荐)

💡 包装类比较值永远用equals,别用==


二、Math 类

java.lang.Mathfinal 工具类,构造器 private,所有方法都是static,拿来即用,不用 new。

public final class Math { private Math() {} // 防实例化 }

常用方法速查

基础运算

Math.abs(-5); // 5,绝对值 Math.max(3, 7); // 7 Math.min(3, 7); // 3 Math.pow(2, 10); // 1024.0(返回 double) Math.sqrt(9); // 3.0

取整三兄弟(最容易混)

Math.ceil(3.2); // 4.0 天花板,向上 Math.floor(3.8); // 3.0 地板,向下 Math.round(3.5); // 4 四舍五入(本质是 floor(x+0.5)) Math.round(-3.5); // -3 ⚠️ 不是 -4

随机数

Math.random(); // [0.0, 1.0) 的 double // 想要 [0, 10) 的整数: int n = (int)(Math.random() * 10);

生产代码更推荐ThreadLocalRandomRandomMath.random()内部同步,并发性能一般。

其他

Math.signum(-5); // -1.0(符号函数) Math.hypot(3, 4); // 5.0,√(x²+y²),防溢出写法 Math.log(10); // 自然对数 Math.PI; // π Math.E; // 自然常数

Math vs StrictMath

绝大多数场景用Math就够了。


三、两者关系 & 选型建议

// 反例 System.out.println(0.1 + 0.2); // 0.30000000000000004 ❌ // 正解 BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2"); System.out.println(a.add(b)); // 0.3 ✅

要不要我接着展开BigDecimal的坑(scale / roundingMode / 构造器传 double 的陷阱),或者包装类自动拆装箱在集合里的真实表现?

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

http://www.cnnetsun.cn/news/3068484.html

相关文章:

  • 实测有效!在YOLOv8中集成YOLOv9的ADown模块,精度提升与参数量下降的保姆级教程
  • 3大实战场景:wvp-GB28181-pro企业级视频监控平台完整接入方案
  • Grok 4.3 智能体实战:无需 API,普通用户也能搭建自动化流程
  • 【实战指南】从零到一:将YOLOv5模型部署至Android App的完整流程与性能调优
  • CAD Exchanger SDK 3.22.0 新特性全解析:Docker化部署与多格式深度支持
  • Eggo控制平面部署:Master节点的自动化安装与配置终极指南
  • 从方程到代码:OpenFOAM核心求解器架构与并行计算实战解析
  • Windows系统文件api-ms-win-core-apiquery-l1-1-0.dll丢失找不到问题解决
  • 4大核心技术革新:Magpie如何重新定义Windows窗口放大体验
  • Python测试框架pytest实战:从基础到高级技巧全解析
  • STM32低功耗实战:用睡眠、停止、待机模式,让你的电池续航翻倍(附HAL库代码)
  • 拒绝 “代写” 定位:gradpaper 毕业论文功能做学术写作的实用辅助者
  • 2026必看!深度测评8款AI论文工具,从开题到定稿全程助力
  • 从零上手思科网络:PT模拟器与核心操作命令全解析
  • 2026年不可错过的AI论文写作神器,全方位提升论文质量
  • 机房设备全天候巡检靠人工夜间故障难发现该如何解决?2026智能运维全攻略
  • STM32F407驱动ESP8266实战:从AT指令到TCP透传的完整配置
  • 深度学习实战:一致性评价方法的选择与应用(从皮尔森到Kappa)
  • 跨平台WebDav挂载实战:从Linux服务器到Windows桌面再到iOS移动端
  • Veeam VBR实战:从备份到运行的完整虚拟机恢复指南
  • 2026 年中小企业多维网络威胁演化与分层防御体系研究
  • LVGL实战指南:从零构建嵌入式GUI应用
  • 破解金融数据获取难题:efinance Python量化交易数据解决方案完全实战指南
  • Claude Code 用 grep,Cursor 用 RAG
  • CTF PWN-从零到一:XCTF新手区实战通关精解
  • FGUI实战解析:从编辑器到Unity集成的全链路开发指南
  • Linux命令-quotacheck(检查磁盘配额数据库)
  • 【选型指南】TTL与CMOS芯片型号速查与应用场景解析
  • 主机故障排查,首选在线Ping检测
  • 从原理到实战:GJK算法在游戏物理引擎中的高效实现