java中biginteger用于处理任意精度整数,不可变且无溢出;须用字符串或valueof()创建,运算返回新对象,比较用compareto/equals,转换需防溢出。

Java 中的大整数用 BigInteger 类处理,它位于 java.math 包中,专门用于表示和运算任意精度的整数(不受 int 或 long 范围限制)。
创建 BigInteger 对象
不能直接用字面量赋值(比如 BigInteger b = 123 不合法),必须通过构造方法或静态工厂方法创建:
- 用字符串构造:适合大数值或含符号的数
BigInteger a = new BigInteger("123456789012345678901234567890"); - 用 int/long 构造(仅限在范围内):
BigInteger b = BigInteger.valueOf(123L);(推荐,比 new 更高效) - 常用常量:
BigInteger.ZERO、BigInteger.ONE、BigInteger.TEN
基本算术运算
所有运算都通过方法调用,返回新对象(BigInteger 不可变):
- 加法:
a.add(b) - 减法:
a.subtract(b) - 乘法:
a.multiply(b) - 除法(截断除):
a.divide(b)(b 不能为 0) - 取余:
a.remainder(b)或a.mod(b)(mod要求 b > 0,结果非负)
例如:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
BigInteger x = new BigInteger("100");<br>BigInteger y = BigInteger.valueOf(7);<br>BigInteger sum = x.add(y); // 107<br>BigInteger mod = x.mod(y); // 2
比较与判断
不能用 == 或 > 等操作符,必须调用方法:
- 相等判断:
a.equals(b)(不是==) - 大小比较:
a.compareTo(b)返回 -1 / 0 / 1,分别表示小于 / 等于 / 大于 - 是否为零:
a.equals(BigInteger.ZERO)或a.signum() == 0 - 正负判断:
a.signum()返回 -1(负)、0(零)、1(正)
转换与输出
转回基础类型需谨慎(可能溢出):
- 转 int:
a.intValue()(只取低 32 位,不抛异常) - 转 long:
a.longValue() - 安全转 int(超出范围会抛
ArithmeticException):a.intValueExact() - 转字符串:
a.toString()(默认十进制) - 转其他进制字符串:
a.toString(16)(十六进制)
注意:toString() 输出不含前导零,负数带负号;toString(2) 可用于查看二进制形式。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










