摘要:
目录 java中的引用 引用队列 虚引用、弱引用、软引用的实现 ReferenceHandler线程 引用队列的实现 总结 参考资料 java中的引用 JDK 1.2之后,把对象的引用分为了四种类型,分别为:强引用、软应用、弱引用和虚引用,以方便控制java对象的生命周期。 强引用 强引用是工作开发 阅读全文
摘要:
目录 Buffer概述 Buffer的创建 Buffer的使用 总结 参考资料 Buffer概述 注:全文以ByteBuffer类为例说明 在Java中提供了7种类型的Buffer,每一种类型的Buffer根据分配内存的方式不同又可以分为 直接缓冲区和非直接缓冲区。 Buffer的本质是一个定长数组 阅读全文
摘要:
##目录 二叉树的深度 平衡二叉树 二叉树的子结构 二叉树的重建 总结 参考资料 ##序 二叉树相关的套路,除了四种遍历方式,还有很多的内容,有二叉树的深度,将一个数组构建成为一个二叉树。 今天接着搞定二叉树。 二叉树的深度 剑指offer第55-I题,Leetcode第104题: 输入一棵二叉树的 阅读全文
摘要:
##目录 树 二叉树 二叉树的遍历 总结 参考资料 序 树是学习数据结构的时候非常重要的一个数据结构,尤其是二叉树更为重要。像Java的HashMap 就使用了红黑树,而Mysql的索引就使用到了B+树。恰好最近刷leetcode碰到了不少的有关 二叉树的题目,今天想着写个总结。 1. 树 1.1 阅读全文
摘要:
目录 Buffer简介 Buffer的核心属性 Buffer的创建与使用(ByteBuffer为例) 总结 参考资料 Buffer简介 缓冲区(Buffer):本质上是一个数组,用于临时保存、写入以及读取数据。在Java NIO中,该内存块包含在NIO Buffer对象当中,NIO Buffer对象 阅读全文
摘要:
目录 synchronized简介 同步的原理 对象头与锁的实现 锁的优化与升级 Monitor Record 锁的对比 synchronized简介 synchronized关键字,一般称之为“同步锁”或者重量级锁(JAVA SE 1.6之后引入了偏向锁和轻量级锁)。它具有可重入性. 根据锁的锁的 阅读全文
摘要:
本文目录 从多线程交替打印A和B开始 Java 内存模型中的可见性、原子性和有序性 Volatile原理 volatile的特性 volatile happens-before规则 volatile 内存语义 volatile 内存语义的实现 CPU对于Volatile的支持 缓存一致性协议 工作内 阅读全文
摘要:
##目录 多线程需要解决的问题 线程之间的通信 线程之间的同步 Java内存模型 内存间的交互操作 指令屏障 happens-before规则 指令重排序 从源程序到字节指令的重排序 as-if-serial语义 程序顺序规则 顺序一致性模型 顺序一致性模型特性 顺序一致性模型特性 当程序未正确同步 阅读全文
摘要:
##目录 阻塞队列简介:介绍阻塞队列的特性与应用场景 java中的阻塞队列:介绍java中实现的供开发者使用的阻塞队列 BlockQueue中方法:介绍阻塞队列的API接口 阻塞队列的实现原理:具体的例子说明阻塞队列的实现原理 总结 ##阻塞队列简介 阻塞队列(BlockingQueue)首先是一个 阅读全文
摘要:
##本文结构 读写锁简介:介绍读写锁、读写锁的特性以及类定义信息 公平策略及Sync同步器:介绍读写锁提供的公平策略以及同步器源码分析 读锁:介绍读锁的一些常用操作和读锁的加锁、解锁的源码分析 写锁:介绍写锁的一些常用操作和写锁的加锁、解锁的源码分析 总结:总结全文,附读写锁全部源码理解 ##读写锁 阅读全文