Gitchat连接

https://gitbook.cn/gitchat/activity/5f395a80aced402379f6a0ca

简介

从底层,从原理,我们来重学一次 Java。BigInteger 是大整数计算类,是BigDecimal用于存储大数属性的类型,BigDecimal中很多计算就是基于BigInteger的函数进行计算的,采用了多种优化的算法实现,他的源码及实现是怎样的呢?

本系列秉承所有结论尽量从源码中来,没有源码的尽量标明出处。相关源码会附着在文章中,读本文即可,不用再自行查找源码及资料学习,方便大家充分利用路上的碎片时间。

本篇 Chat 对BigInteger的属性、构造函数、四则运算、位移等进行逐一源码分析,帮助大家深入理解和学习 JDK 源码的牛掰优化。

本文包含以下内容:

  • 类信息

    • 类的定义
    • 类的继承结构
  • 静态代码块
    • 静态代码块1及相关的常量

      • MAX_CONSTANT
      • posConst
      • negConst
    • 静态代码块2及相关的常量
      • zeros
  • 常量
  • 属性
    • signum
    • mag
  • 构造函数
    • BigInteger(int[] magnitude, int signum)
    • BigInteger.ZERO
    • 三个静态数组
      • bitsPerDigit
      • digitsPerInt
      • intRadix
    • BigInteger(String val)
    • private BigInteger(long val)
  • 四则运算
      • add(BigInteger val)
      • int compareMagnitude(BigInteger val)
      • int[] add(int[] x, int[] y)
      • int[] subtract(int[] big, int[] little)
      • BigInteger multiply(BigInteger val)
      • BigInteger multiply(BigInteger val, boolean isRecursion)
      • BigInteger multiplyByInt(int[] x, int y, int sign)
      • int[] multiplyToLen(int[] x, int xlen, int[] y, int ylen, int[] z)
      • Karatsuba算法
        • 实现原理
        • BigInteger multiplyKaratsuba(BigInteger x, BigInteger y)
        • BigInteger getLower(int n)
        • BigInteger getUpper(int n)
        • BigInteger abs()
      • Integer.numberOfLeadingZeros()
      • Toom-Cook 3路算法
        • BigInteger multiplyToomCook3(BigInteger a, BigInteger b)
        • BigInteger getToomSlice(int lowerSize, int upperSize, int slice,int fullsize)
        • exactDivideBy3
      • 平方计算
        • implSquareToLen
        • squareKaratsuba
        • squareToomCook3
      • BigInteger divide(BigInteger val)
      • Knuth算法
        • MutableBigInteger
        • MutableBigInteger.divideKnuth
        • divideOneWord
        • divideMagnitude
        • Integer.numberOfTrailingZeros
        • copyAndShift
      • Burnikel-Ziegler算法
        • 算法文章
        • 第一步计算
        • divide2n1n
        • divide3n2n
        • divideAndRemainderBurnikelZiegler主算法
        • Arrays.fill
  • 位运算
    • 左移
    • 右移
  • valueOf
  • 其他计算及比较
    • BigInteger abs()

适用人群:有一些 Java 基础的人群。

从底层重学 Java 之 BigInteger 大整数 Gitchat连接相关推荐

  1. 从底层重学 Java 之 Character 字符型 Gitchat连接

    Gitchat连接 https://gitbook.cn/gitchat/activity/5f50804bbe67a5348a9b2c91 简介 从底层,从原理,我们来重学一次 Java.Chara ...

  2. 从底层重学 Java 之两大浮点类型 GitChat链接

    chat连接 https://gitbook.cn/gitchat/activity/5f03fdd3852a4f3686fb3366 简介 从底层,从原理,我们来重学一次 Java.两大 Java ...

  3. 从底层重学 Java 之两大浮点类型 GitChat连接

    从底层,从原理,我们来重学一次 Java.两大 Java 浮点类 Double.Float 是我们比较常用的对象,他们的源码及实现是怎样的呢? 本系列秉承所有结论尽量从源码中来,没有源码的尽量标明出处 ...

  4. 从底层重学 Java 之 Stream 并行及标志 GitChat连接

    GitChat连接 https://gitbook.cn/gitchat/activity/5f8fc6cd1f577d4d9f428562 简介 从底层,从原理,我们来重学一次 Java.Strea ...

  5. 从底层重学 Java 之 Stream 初探 Gitchat连接

    Gitchat连接 https://gitbook.cn/gitchat/activity/5f85696aad812d16b498848c 简介 从底层,从原理,我们来重学一次 Java.Strea ...

  6. 从底层重学 Java 之四大整数 GitChat链接

    从底层,从原理,我们来重学一次 Java.四大 Java 整数类 Byte.Short.Integer.Long 是我们比较常用的对象,他们的源码及实现是怎样的呢? 本系列秉承所有结论尽量从源码中来, ...

  7. 《重学 Java 面试题》PDF 出炉了 - 退休的程序猿,肝了30天写出15万字241页的实战编程资料

    一.前言 我膨胀了 ,在编写完上一本PDF<字节码编程>被下载了2000份以后,蠢蠢欲动开始计划第二本.于是从 5月20日那天投身实战型设计模式打磨,通过模拟互联网业务开发实际需求作为学习 ...

  8. 《重学 Java 设计模式》PDF 出炉了 - 小傅哥,肝了50天写出18万字271页的实战编程资料...

    持续坚持原创输出,点击蓝字关注我吧 作者:小傅哥 博客:https://bugstack.cn ❝ 沉淀.分享.成长,让自己和他人都能有所收获!???? ❞ 目录 一.前言 二.简介 1. 谁发明了设 ...

  9. 重学 Java 设计模式:实战适配器模式

    重学 Java 设计模式:实战适配器模式 一.前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术栈,开始尝试去阅读一些源码,例如Spring.Mybaits.D ...

最新文章

  1. Pytorch:使用DCGAN实现数据复制
  2. 数据结构的映像方法(关系的机内表示)
  3. postgres中文文档
  4. 20w7珠led驱动电源电路图_三种常用的LED驱动电源电路图详解!
  5. 5分钟了解CDN 加速原理 | +新书推荐
  6. 求n的阶乘的算法框图_单片机常用的14个C语言算法
  7. excel 电阻并联计算_电路分析基础(5)-关于电阻,有些话我还是要说一说
  8. 飞鸽传书2012软件设计者的角度来看
  9. 速进!2000核实计算资源免费领取,名额有限,即开即送!
  10. jetpack的camerax_Android开发-Jetpack组件CameraX
  11. Node.js ES6 模块化的基本语法-按需导出与按需导入
  12. 动手学servlet(六) 过滤器和监听器
  13. Redis基础(二)——通用命令和配置
  14. stm32单片机屏幕一直闪_STM32物联网实战项目 - 项目需求
  15. css实现时间数字特效字体格式
  16. 基于python的图像识别
  17. 参考文献tool-mendeley_拔剑-浆糊的传说_新浪博客
  18. 计算机 医学 sci期刊,1分左右医学sci期刊
  19. SCOI 2016 bzoj 4567~4572 题解
  20. python学习 —— post请求方法的应用

热门文章

  1. 前端学习(1845)vue之电商管理系统项目实战的学习目标
  2. 前端学习(1352)模板语法
  3. 前端学习(1263):post方式的参数传递
  4. 前端学习(1132):正则表达式学习目标
  5. 前端学习(902):this指向问题
  6. 前端学习(759):预解析案例
  7. 前端学习(715):数组新增元素
  8. 前端学习(534):多列布局1
  9. RS(1)--10分钟了解什么是推荐系统
  10. jvm 参数_6个提高性能的JVM参数