Apache Commons Math
commons-math
Commons Math是由一组数学/stat实用程序组成的,这些实用程序可以解决下面列表中的编程问题。这个列表并不是详尽的,它只是为了让大家对Commons Math所提供的东西有所了解。
对数字列表的计算方法、方差和其他汇总统计信息
使用线性回归将直线拟合到一组数据点上
将曲线拟合到一组数据点上
...
2018-09-13 12:02:52 |
Java
Java Bit Operation-类型转换-02
问题
对于 32 位的字符串 379a1e5df3534885a94001373467f33e,如果想转换为整数。
JDK 内置的方法
借助 BigInteger
new BigInteger("379a1e5df3534885a94001373467f33e", 16)
结果为
73907769400197500546813542834226328382
jdk1.8 的...
2018-09-13 05:09:36 |
Java
Java Bit Operation-位运算-01
进制
计算机只有 0 和 1
常见的进制如下:
十进制:10
八进制:012
十六进制:0x0a
二进制:1010
虽然有很多种进制,但是实际上计算机所认识的数据只有 0 和 1, 因此所有的数值不管它是十进制、十六进制也好都会统统在底层被翻译成二进制数值。
bit、byte、word
bit (位) bit 电脑记忆体中最小的单位,在二进位电脑系统中,每一 b...
2018-09-13 05:09:36 |
Java
Java Transient
Transient
概念
Java对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将Java对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回 Java 对象原有的状态。
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这...
2018-09-13 03:19:18 |
Java
B Tree
B+树
B+ 树是一种树数据结构,通常用于数据库和操作系统的文件系统中。
B+ 树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。
B+ 树元素自底向上插入,这与二叉树恰好相反。
B+ 树在节点访问时间远远超过节点内部访问时间的时候,比可作为替代的实现有着实在的优势。这通常在多数节点在次级存储比如硬盘中的时候出现。通过最大化在每个内部节点内的子节点的数目减少树的...
2018-09-12 04:44:23 |
Data-Struct
HashMap 源码解析
为什么学习 HashMap 源码?
作为一名 java 开发,基本上最常用的数据结构就是 HashMap 和 List,jdk 的 HashMap 设计还是非常值得深入学习的。
无论是在面试还是工作中,知道原理都对会我们有很大的帮助。
本篇的内容较长,建议先收藏,再细细品味。
不同于网上简单的源码分析,更多的是实现背后的设计思想。
涉及的内容比较广泛,从统计学中的泊松分布,到计算机...
2018-09-12 03:44:23 |
Java
ConcurrentHashMap 源码解析
HashMap 的线程安全性
HashMap 是线程不安全的。
为了使用线程安全的数据结构,多线程条件下,可使用 Collections.synchronizedMap 方法构造出一个同步Map,或者直接使用线程安全的 ConcurrentHashMap。
Java 7基于分段锁的ConcurrentHashMap
注:本章的代码均基于JDK 1.7.0_67
数据结构
Ja...
2018-09-12 03:44:23 |
Java
Red Black Tree
Red Black Tree
红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。
它是在1972年由鲁道夫·贝尔发明的,他称之为”对称二叉B树”,它现代的名字是在Leo J. Guibas和Robert Sedgewick于1978年写的一篇论文中获得的。
它是复杂的,但它的操作有着良好的最坏情况运行时间,...
2018-09-12 03:44:23 |
Data-Struct