摘要: 前言 接下来的这一段时间都将探索跟线程有关的内容,包括各种锁,对Thread的总结如下: 线程具有优先级,高优先级的线程优先于低优先级的线程执行,当在某个线程中创建新线程时,新线程的优先级被设置成当前线程的优先级;JVM启动时,默认有一个非守护线程(调用某个类的main方法);线程能被标记为守护线程 阅读全文
posted @ 2020-12-21 20:39 zliawk 阅读(87) 评论(0) 推荐(0)
摘要: 前言 探索TreeMap底层实现是基于JDK1.8,通过该类的注释可以了解它的数据结构是红黑树,默认是按照自然顺序进行排序(所有的键都必须去实现Comparable),当然也可以通过指定比较器进行排序(所有的键都必须实现Comparator)。至于什么是红黑树,读者最好有一定的了解,那看懂它的源码也 阅读全文
posted @ 2020-12-21 20:38 zliawk 阅读(316) 评论(0) 推荐(0)
摘要: 开门见山 ThreadGroup在实际开发中很少用到,不过由于它跟Thread的关系比较密切,所以还是了解下为妙,揭开ThreadGroup的面纱是基于JDK1.8。通过阅读注释及相关文章,可以知道ThreadGroup的结构如下: 除了初始线程组(JVM所属)以外,每个线程组都有一个父线程组及子线 阅读全文
posted @ 2020-12-21 20:37 zliawk 阅读(122) 评论(0) 推荐(0)
摘要: 前言 TreeSet的内部实现基于TreeMap,所以它的数据结构是红黑树。注释也不总结了,此探索是基于JDK1.8,直接进入正题。 数据结构 public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Clo 阅读全文
posted @ 2020-12-21 20:33 zliawk 阅读(664) 评论(0) 推荐(0)
摘要: 背景 上周发布了探索ArrayList的底层实现,趁热打铁!实际上ArrayList与Vector的实现上非常相似,代码基本上都是一样的,还是老样子,先看注释,我能说注释都差不多一样吗。探索Vector源代码是基于JDK1.8的。 阅读注释 Vector内部是通过动态数组实现的。 Vector可自定 阅读全文
posted @ 2020-12-21 19:37 zliawk 阅读(307) 评论(0) 推荐(0)
摘要: 前言 在多线程并发编程中volatile扮演者重要的角色,它是轻量级的synchronized,在多处理器中保证了共享变量的可见性,执行成本更低,因为它不会引起线程的上下文切换和调用,简单来说就是多线程对共享变量的修改能让其他线程立即知晓而不需要花费线程切换的相关成本,这一切都由一个叫做内存模型的东 阅读全文
posted @ 2020-12-21 19:26 zliawk 阅读(61) 评论(0) 推荐(0)
摘要: 前言 探索WeakHashMap底层实现是基于JDK1.8,它的数据结构是数组 + 链表。就不贴它的注释了,直接总结一下吧: WeakHashMap基于弱键实现了Map接口,也就是说,当某个键不在使用时会被丢弃,对应的键值对将会被自动移除。如何确定不在使用取决于GC是否运行,而对于GC何时运行我们并 阅读全文
posted @ 2020-12-21 19:23 zliawk 阅读(96) 评论(0) 推荐(0)
摘要: 比较 趁热打铁!比较最近学习到的几个Map实现类,也正好总结下!此比较是基于JDK1.8,直接用表格展示。 比较点 HashMap Hashtable IdentityHashMap LinkedHashMap TreeMap WeakHashMap 数据结构 数组链表红黑树 数组链表 数组(哈希探 阅读全文
posted @ 2020-12-21 19:22 zliawk 阅读(99) 评论(0) 推荐(0)
摘要: 前言 字符串是最常用的类型之一,趁此机会准备探索下它的源码。有关该类的注释作一个总结: String-字符串,是个常量,它们被创建后其值就不允许被改变,由于它是不可变的,所以它们可以被共享,在内部提供了多个方法来操作字符串。 探索之前我曾看过其他人写的有关于此的文章,发现JDK1.7版本前后的内存模 阅读全文
posted @ 2020-12-21 19:21 zliawk 阅读(691) 评论(0) 推荐(0)
摘要: 前言 《Java虚拟机规范》中并没有关于垃圾收集器的相关章节,所以本篇文章的内容将完全参考周志明老师的书籍,目的同样是归纳总结形成自己的理解。虚拟机的运行时数据区可划分为程序计数器、Java虚拟机栈、本地方法栈、堆、方法区,其中前三者随着线程的创建而建立,后两者随着虚拟机的启动而创建,所以在线程结束 阅读全文
posted @ 2020-12-21 19:20 zliawk 阅读(73) 评论(0) 推荐(0)