摘要:
简介 Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object的notifyAll()方法。 不同的是,Object中的wait() 阅读全文
摘要:
简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 定义模型的目标 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储 阅读全文
摘要:
内存溢出 内存溢出(out of memory),是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给他存了long才能存下的数,就会发生内存溢出。 内存泄露 内存泄露(memory leak),是指程序在申请内存后,无法释放已申请的内 阅读全文
摘要:
红黑树的本质就是一个二叉查找(排序树)。 红黑树的五条性质: 每个节点非红即黑 根节点为黑 红节点的两个子节点都为黑 每个叶子节点都为黑 对于任一节点而言,其到叶子节点的每一条路径都包含相同数目的黑节点 详细:https://github.com/julycoding/The-Art-Of-Prog 阅读全文
摘要:
添加Maven依赖: 代码结构: 源码: 1 package Exception; 2 3 /** 4 * Created by zhengbin06 on 2017/2/14. 5 */ 6 public class Clazz { 7 private int i = 0; 8 public St 阅读全文
摘要:
二叉排序树又称二叉查找树(Binary Search Tree,简称BST),它可以是一棵空树,若非空时具有以下性质: 若根结点的左子树非空,则左子树上的所有结点的关键字均小于等于根节点的关键字值; 若根结点的右子树非空,则右子树上所有的结点的关键字均大于等于根节点的关键字值; 根结点的左、右子树也 阅读全文
摘要:
摘要 JDK1.8相较于1.7对HashMap做了很大的优化,比如加入了新数据结构红黑树、Hash算法的优化和扩容的优化。 本篇结合这些区别,探索HashMap的结构实现和功能原理。 存储结构-字段 从数据结构来看,HashMap是数组+链表+红黑树实现的,如图所示: HashMap中重要的几个属性 阅读全文
摘要:
简述: ArrayList可以理解为动态数组,与Java中的数组相比,它的容量能动态增长。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组中,因此最好能给出数组大小的预估值; 容量大小也可以在程序中通过ensureCapacity(int minCapacity)方法 阅读全文
摘要:
数据结构 LinkedList是基于链表结构实现,所以在LinkedList类中包含了first和last两个指针(类型为Node)。Node中包含了对prev节点、next节点的引用,这样就构成了双向的链表。 存储 1.add(E e)方法 该方法首先声明一个新Node l,将链表的最后一个Nod 阅读全文
摘要:
参考别人的感觉挺好玩,还没仔细研究,先上代码。 阅读全文