news 2026/6/25 9:47:11

js--13

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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(直接舍弃)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 15:58:57

驾驭万亿参数 MoE:深度剖析 CANN ops-transformer 算子库的“核武库”

目录 一、 为什么通用算子不够用了? 二、 核心能力:四大“护法”算子 三、 开发者宝典:从入门到调优 四、 结语 前言 在 AIGC 的“百模大战”中,Transformer 架构无疑是那个唯一的“真理”。从 GPT-4 到 DeepSeek&#xff0c…

作者头像 李华
网站建设 2026/6/15 20:21:45

深入理解CANN ops-nn BatchNormalization算子:训练加速的关键技术

好的,请查收这篇符合CANN库解读文章写作标准的深度技术博客: 深入理解CANN ops-nn BatchNormalization算子:训练加速的关键技术 摘要: 在深度神经网络训练过程中,BatchNormalization (批归一化,简称BN) 扮…

作者头像 李华
网站建设 2026/6/22 14:18:38

智能销售AI助手的模型压缩:AI应用架构师的技术选型

智能销售AI助手的模型压缩:AI应用架构师的技术选型 关键词:智能销售AI助手、模型压缩、AI应用架构师、技术选型、深度学习模型、量化、剪枝 摘要:本文聚焦于智能销售AI助手领域中模型压缩的技术选型问题,旨在为AI应用架构师提供…

作者头像 李华
网站建设 2026/6/9 17:26:18

FPGA 项目真的很难吗?科班生说出真相

这篇文章聊一聊 FPGA 项目在求职中的真实价值,尤其是对缺乏工程经历的学生来说,到底重不重要。前两天,有一位某 985 科班的同学来咨询项目训练的问题。他所在学校本身也有实验课和课程设计,但他说,多一个完整项目&…

作者头像 李华
网站建设 2026/6/21 10:47:22

485总线冲突检测:MCU实时电平对比技术

目录 一、硬件基础:485 芯片与 MCU 的连接逻辑 核心硬件连接要点: 二、核心原理:发送时的电平对比逻辑 三、软件实现:逐位发送 实时电平检测 3.1 先定义硬件引脚(以 STM32 为例) 3.2 引脚初始化 3.…

作者头像 李华