在Java开发中,常用类是构建高质量代码的基石。无论是数学运算、系统操作,还是高精度计算、字符串处理,掌握这些核心类的用法,能让你在面试和实际项目中游刃有余。本文基于七篇精华总结,深度解析Math、System、Runtime、Object、BigInteger、BigDecimal及正则表达式的关键知识点,助你快速提升Java技能。

数学与系统操作:Math、System、Runtime

Math类是Java中数学运算的瑞士军刀,所有方法均为静态,无需实例化。核心API包括:abs()(绝对值)、ceil()(向上取整)、floor()(向下取整)、round()(四舍五入)、max()min()(最大最小值)、random()(随机数)、pow(a,b)(幂运算)。常量如Math.PIMath.E也需牢记。

⚠️ 坑点提醒:Math.random()生成[a,b]区间随机数的公式为(int)(Math.random()*(b-a+1)) + a,但abs(Integer.MIN_VALUE)可能溢出,需特别注意。

System类提供系统级静态方法:System.currentTimeMillis()用于获取时间戳,是统计程序耗时的利器;System.arraycopy(源数组, 源索引, 目标数组, 目标索引, 长度)实现高效数组拷贝(native方法);System.exit(0)终止JVM。这些方法在算法耗时统计和集合底层扩容中高频使用。

Runtime类采用饿汉式单例设计,通过

Runtime rt = Runtime.getRuntime();
获取实例。核心功能包括:availableProcessors()获取CPU核心数;maxMemory()totalMemory()freeMemory()监控JVM内存;exec("notepad")执行系统命令;exit(0)退出JVM。面试中常问其单例模式实现。

对象根基与工具:Object & Objects

Object类是所有类的父类,核心方法包括:toString()(默认打印地址,重写后打印属性)、equals()(默认比较地址,重写后比较内容,需同步重写hashCode())、clone()(对象克隆)。浅克隆拷贝引用地址,深克隆生成完全独立对象。

Objects工具类提供空安全操作:Objects.equals(a,b)防空指针比较;Objects.isNull(obj)nonNull(obj)用于判空。面试必问==与equals的区别、浅克隆与深克隆的差异。

高精度计算:BigInteger & BigDecimal

BigInteger类处理超出long范围的超大整数,通过new BigInteger("超长数字")创建,注意BigInteger.valueOf(100)(-16~16有缓存)。运算方法包括add()subtract()multiply()divide()divideAndRemainder()同时返回商和余数;equals()比较值,compareTo()比较大小。它是不可变对象,运算后返回新对象。

BigDecimal类解决小数精度丢失问题(如0.1+0.2≠0.3),金融计算必用。创建时推荐new BigDecimal("0.1")BigDecimal.valueOf(0.1),禁止使用new BigDecimal(0.1)(精度丢失)。除法必须指定精度和舍入模式:

divide(bd, 2, BigDecimal.ROUND_HALF_UP)
;比较用compareTo(),不用equals();常用舍入模式ROUND_HALF_UP(四舍五入)。

[AFFILIATE_SLOT_1]

字符串处理:正则表达式 Regex

正则表达式用于字符串校验、提取和替换。核心语法包括:\d(数字)、\w(字母数字下划线);量词+(至少1次)、*(任意次)、?(0或1次)、{n}(正好n次)、{n,m}(n~m次);定位符()(分组)、^(开头)、$(结尾)。

Java中使用方式:校验用str.matches(regex);提取用Pattern + Matcher;切割/替换用split()replaceAll()。开发常用正则:手机号^1[3-9]\\d{9}$、邮箱、身份证^[1-9]\\d{16}(\\d|X|x)$;面试点:贪婪匹配.* vs 非贪婪.*?

七篇通用高分规律(面试&写作必看)

  • 所属包与导包:明确每个类所在的包,避免导包错误。
  • 单例/静态设计:如Runtime是单例,Math/System全静态。
  • 不可变对象:BigInteger、BigDecimal、String等,运算后返回新对象。
  • 空指针安全:Objects、compareTo等工具类提升代码健壮性。
  • native方法效率高:System.arraycopy、Runtime等底层优化。
  • 金融/高精度场景:必须使用BigDecimal,避免double精度问题。
  • 字符串处理:正则表达式是校验和提取的必备技能。

这些规律同样适用于Python、JavaScript、Go、C++等语言中类似的设计模式,如不可变对象和空安全处理,体现了编程语言的共通性。

[AFFILIATE_SLOT_2]

✍️ 写在最后 · 系列总结

这七篇精华涵盖了Java常用类的核心:数学/系统(Math、System、Runtime)、根基/工具(Object、Objects)、高精度(BigInteger、BigDecimal)、字符串处理(正则表达式)。吃透这些内容,你就能在Java基础→中级阶段建立扎实的知识体系,无论是后端开发还是面试笔试,都能从容应对。建议结合代码实践,加深理解,并关注底层实现如native方法,提升性能意识。