2019年4月18号,面试遇到的面试题,当时做错了,纪念下。

public class StrTest {
public static void main(String[] args) {
BigInteger a = new BigInteger("1");
BigInteger b = new BigInteger("2");
BigInteger c = new BigInteger("3");
BigInteger d = new BigInteger("0"); d.add(a);
d.add(b);
d.add(c);
// BigInteger result = d.add(a).add(b).add(c);
System.out.println(d.toString());
}
}

打印结果为:0

经过查看add()源码,看到如下代码:

public BigInteger add(BigInteger val) {
if (val.signum == 0)
return this;
if (signum == 0)
return val;
     //注意:这里返回了新对象
if (val.signum == signum)
return new BigInteger(add(mag, val.mag), signum); int cmp = compareMagnitude(val);
if (cmp == 0)
return ZERO;
int[] resultMag = (cmp > 0 ? subtract(mag, val.mag)
: subtract(val.mag, mag));
resultMag = trustedStripLeadingZeroInts(resultMag); return new BigInteger(resultMag, cmp == signum ? 1 : -1);
}

最新文章

  1. Andriod 自定义控件之创建可以复用的组合控件
  2. [jquery]将当前时间转换成yyyymmdd格式
  3. 利用xhsell登录到远程腾讯云服务器
  4. 让Fiddler 直接抓取java程序的方法
  5. Class.forName()的作用
  6. php 短路逻辑运算符
  7. 通过indexPath找到对应的cell
  8. 无线ap和路由器wifi热点怎么区分和区别
  9. ●洛谷P3348 [ZJOI2016]大森林
  10. 转:vue项目如何刷新当前页面
  11. 二分图最小点覆盖König定理的简单证明 (加入自己理解)
  12. 读书笔记_Effective_C++_条款三:尽可能使用const
  13. DOUHAO
  14. C#——文件上传(一般处理程序ashx)
  15. 第21章 DMA—直接存储区访问
  16. tortoisegit错误: disconnected - no supported authentication methods available(server sent: publickey)
  17. python部署LNMP业务服务环境
  18. mybatis 学习六 MyBatis主配置文件
  19. python3 提取http请求response中的某个值
  20. 动手写一个简单版的谷歌TPU-矩阵乘法和卷积

热门文章

  1. Pycharm2018永久破解的办法
  2. Android 8.0 的部分坑及对应解决方法
  3. 【转载】Sqlserver日期时间格式化总结
  4. js无法获取.net设置的cookie
  5. :only-child和:only-of-type选择器的比较
  6. 数据库学习(MySQL):JDBC的简单增删改查实现
  7. javascript原型与原型链,prototype、__proto__、constructor
  8. 20190404-transition、transform转换、animation、媒体查询
  9. C#多线程和线程池 【转】
  10. 【SpringBoot笔记】SpringBoot整合Druid数据连接池