Java中BigInteger初始化疑问:"" + 1的含义是什么?
关于BigInteger初始化中
"" + 1的解释 嘿,这个写法其实是个有点“取巧”的字符串转换小技巧,我来给你拆解明白:
首先得先搞懂BigInteger的构造逻辑:这里用到的是BigInteger(String val)这个构造方法——它必须接收一个表示数字的字符串才能创建BigInteger实例,而直接传整数1是不行的,因为BigInteger压根就没有接受int类型参数的构造函数。
那"" + 1到底在干嘛?
- 在Java里,当你把一个字符串(这里是空字符串
"")和非字符串类型(这里是int值1)用+运算符连接时,Java会自动触发字符串转换机制,把非字符串的那个值转换成字符串类型。 - 所以
"" + 1最终会生成字符串"1",刚好满足BigInteger构造方法的参数要求。
不过得说句实在话,这种写法可读性有点差,其实有更直接清晰的替代写法:
- 写法1:
new BigInteger(String.valueOf(1))—— 显式调用字符串转换方法,一目了然 - 写法2:
new BigInteger("1")—— 直接写目标字符串,最简洁直接
内容的提问来源于stack exchange,提问作者user9101146
相关产品推荐
相关产品推荐

