JDK 源码 阅读
来源:互联网 发布:企业员工培训软件 编辑:程序博客网 时间:2024/05/16 14:32
To be continuing.......
持续修改中。。。。
1. StringBuffer
所处类层次
易忽略点:
- 这个类是线程安全的。 所有的method直接或间接加synchronized。 所以我们如果是单线程情况下也考虑到这个会不会影响到效率。当然可能JIT可以进行这个优化,待我接下来验证。
- 默认情况下一个长为16个字符的数组被创建来存储字符串。
相关学习点:
- 当我们把Long, Integer 加到其中时。我们要先技术这个数字要多少个字符来存放。 这里的小技巧即使 用正数来求,负数加一。在求正数时,从1位开始比较1位必定小于10,接下来2位的必定小于100,以此类推。在计算integer要占的字符数时,边界值是直接缓存于数组中的。
2. Integer/Long
相关学习点:
- 在 Long 的package 方法getChars中有一整数乘法的为计算转化。 例如 a * 100 可以转化为 (a<<6) + (a<<5) + (a<<2) 。 原因就是 100的二进制为 1100100 。
- 在小于65536(10000 0000 0000 0000)的整数除10的整数运算中。我们可以把这个运算转换为快速的位运算。 a/10(整数运算) ---> (a * 52429) >>> (16+3)。 这里 1<< 19 = 524288. 52429/524288 = 0.10000038146972... 说到这就明白了。 但还是有一点是为什么选择19,不是20也不是18. 原因是 52429 < 65536 , 所以a 是16位内的数 52429乘上后不会越过整型的正数的界。同时取小于19的值 计算精度会低于取19。
- JDK 源码 阅读
- JDK源码阅读-ArrayList
- JDK源码阅读之一-----Object
- JDK源码阅读之ArrayList
- JDK源码阅读之LinkedList
- JDK源码阅读之Arrays
- JDK源码阅读之String
- JDK源码阅读之AbstractList
- JDK源码阅读之AbstractMap
- JDK源码阅读之HashSet
- JDK源码阅读之AbstractCollection
- JDK源码阅读-1-Collection
- JDK源码阅读之 HashMap
- [Jdk源码阅读]ArrayList实现
- jdk源码阅读--(LinkedList)
- jdk源码阅读一:ArrayList
- jdk源码阅读二:LinkedList
- Vector源码阅读(JDK 8)
- struts2标签和jstl语言标签使用比较(可参考)
- 面试编程题
- 图解数据结构(3)——队
- server—uftp上次中文文件失败
- NSNull nil NULL Nil NSValue
- JDK 源码 阅读
- 视频开发/wifi/蓝牙/路由/ARM/FPGA/DSP/STM32/Android/IOS/linux/毕业设计资料/监控系统/智能小车/移动监控系统/智能家居系统/广域网聊天系统/广域网穿越技术
- 【美团 技术篇】美团推荐算法实践
- C#控制台应用程序执行一闪而过解决方法
- mysql安装
- 图解数据结构(4)——二分法查找法
- 使用Linq 查询数据 构建对象 select new{}
- Java 加解密技术系列之 AES
- 图解数据结构(5)——散列法及哈希表