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

js--13

一、Object 类(Java 顶级父类)

所有类直接 / 间接继承 Object,为所有对象提供统一基础方法,无特殊声明时子类默认调用其空参构造完成初始化。

1. 核心方法

toString()
  • 默认行为:返回类名@哈希码值,无业务意义;打印对象时会自动调用此方法。
  • 开发规范:必须重写,拼接对象属性为有意义的字符串,方便调试和查看对象信息。
equals(Object obj)
  • 默认行为:比较两个对象的内存地址,判断是否为同一个对象。
  • 开发规范:几乎都要重写,改为比较对象属性值是否相等;重写时建议结合 Objects 工具类,避免空指针。
clone ()(对象克隆)
  • 核心作用:复制对象,将原对象属性值完整拷贝给新对象。
  • 实现前提:① 实现Cloneable标记接口(无抽象方法,仅标识可克隆);② 重写 clone () 并处理CloneNotSupportedException异常。
  • 克隆类型:
    • 浅克隆:基本数据类型复制值,引用数据类型仅复制地址,新旧对象共享引用对象。
    • 深克隆:引用数据类型重新创建对象,新旧对象的引用属性完全独立,互不影响。

二、Objects 工具类(对象操作工具,避免空指针)

所有方法为静态方法,直接通过Objects.方法名()调用,核心解决 Object 类方法的空指针问题,是开发首选。

核心方法

  1. equals (Object a, Object b):先做非空判断,再调用对象的 equals (),避免空指针异常。
  2. isNull (Object obj):判断对象是否为 null,为 null 返回 true。
  3. nonNull (Object obj):判断对象是否非 null,结果与 isNull () 相反。

三、BigInteger 类(处理超大整数,突破 long 范围)

用于操作超出long取值范围的超大整数,支持高精度整数运算,对象一旦创建,值不可修改,所有运算都会返回新的 BigInteger 对象。

1. 对象创建(推荐静态方法)

  1. 静态方法:BigInteger.valueOf (long val),适用于未超出 long 范围的数,内部有对象池优化,性能更高。
  2. 构造方法:
    • BigInteger (String val):通过数字字符串创建超大整数(核心方式)。
    • BigInteger (String val, int radix):按指定进制(2/8/16 等)解析字符串为整数。
    • BigInteger (int num, Random rnd):生成[0, 2^num - 1]范围内的随机大整数。

2. 常用运算方法

  • 加法:add (BigInteger val)
  • 减法:subtract (BigInteger val)
  • 乘法:multiply (BigInteger val)
  • 除法:divide (BigInteger val)(仅返回商)
  • 除尽取商余:divideAndRemainder (BigInteger val)(返回商和余数的数组)
  • 次幂:pow (int exponent)
  • 最值:max (BigInteger val) /min (BigInteger val)

四、BigDecimal 类(高精度浮点数,解决精度丢失)

用于处理高精度小数运算,彻底解决double/float的浮点精度丢失问题,是金融、电商等精确计算场景的唯一选择对象不可变,运算返回新对象。

1. 对象创建(避坑:禁止直接用 double 构造)

  1. 静态方法(推荐):BigDecimal.valueOf (double val),适用于未超出 double 范围的数,有对象池优化。
  2. 构造方法:
    • BigDecimal (String val):通过数字字符串创建,无精度丢失,是最高精度的方式(推荐)。
    • BigDecimal (double val):不推荐,因 double 本身存在精度误差,会导致创建的对象值不准确。

2. 常用运算方法

  • 加法:add (BigDecimal val)
  • 减法:subtract (BigDecimal val)
  • 乘法:multiply (BigDecimal val)
  • 除法:divide (BigDecimal val)(除不尽时抛出异常,禁止直接使用)
  • 安全除法(推荐):divide (BigDecimal val, int scale, RoundingMode mode)
    • scale:保留的小数位数。
    • mode:舍入模式,如RoundingMode.HALF_UP(四舍五入)、RoundingMode.DOWN(直接舍弃)。

http://www.jsqmd.com/news/351663/

相关文章:

  • 告别机械回复:三步微调AI模型,打造会“读心”的智能客服
  • 深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
  • 从迷茫自学到稳定入行:我的 FPGA 上岸全过程
  • 2026年招投标评审专家自然人开票解决方案选型参考:主流方案对比与场景适配建议
  • 重温主旋律
  • RAG灵魂第一步:掌握这5种文档切分技巧,轻松让AI“读懂”你的资料库
  • 数字图像处理篇---明度与饱和度
  • 【架构实战】RedisTemplate与RedisPool架构对比:RedisTemplate 抽象层 vs JedisPool 资源层;同步阻塞 vs 异步非阻塞
  • 数字图像处理篇---描述颜色地的红、绿、蓝、黄
  • 记IP嵌入式端IP地址合法性校验
  • 数字图像处理篇---YPbPr颜色空间
  • 驾驭万亿参数 MoE:深度剖析 CANN ops-transformer 算子库的“核武库”
  • AIGC 的“数学心脏”:一文读懂 CANN ops-math 通用数学库
  • 数字图像处理篇---LAB颜色空间
  • 解构 AIGC 的“核动力”引擎:华为 CANN 如何撑起万亿参数的大模型时代
  • 数字图像处理篇---YUV颜色空间
  • CANN生态核心算子库合集:赋能AIGC多模态落地的全链路算力支撑
  • 开绕组永磁同步电机故障诊断及容错控制技术研究
  • 当 Triton 遇上 Ascend:深度解析 GE Backend 如何打通 NPU 推理“最后一公里”
  • ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理---惜分飞
  • 伺服电机驱动的连铸结晶器振动系统故障检测和容错控制
  • 数字图像处理篇---YCbCr颜色空间
  • 基于LSTM长短期记忆神经网络的轴承剩余寿命预测MATLAB实现
  • 基于小样本学习的滚动轴承故障诊断方法研究
  • 数字图像处理篇---HSL颜色空间
  • 2026年背涂胶行业十大品牌揭晓:谁将引领市场新格局?
  • AI使用控制采购指南:企业如何管理AI风险
  • java+vue基于springboot框架的企业进销存管理系统
  • 数字图像处理篇---HSV颜色空间
  • java+vue基于springboot框架的全国非物质文化遗产展示平台