上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 26 下一页
摘要: 搭建Java源码阅读环境,有两种类型,一种是调试 Java API 代码,另一种是深入 Java 底层编译 C++ 代码。本文主要还停留在 API 层面,搭建的是阅读 Java API 代码的环境。本文使用的 JDK 是 1.8.0_131。 本文遇到了源值1.5已过时( java: -source 1.5 中不支持 diamond 运算符 ),UNIXToolkit和FontConfigManager 找不到,com.sun.tools.javac.api不存在等编译问题。 也遇到了程序包sun.reflect.misc不存在,程序包javax.crypto不存在,程序包com.sun.tools.javac.api不存在等问题。同时还有设置本地源码为首选源码的设置。 有什么问题欢迎提出讨论。 阅读全文
posted @ 2021-02-25 20:19 极客子羽 阅读(1900) 评论(0) 推荐(0)
摘要: JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,对应的依赖分别是 junit-platform-launcher + junit-jupiter-engine + junit-vintage-engine。平常开发时,需要如何选择依赖包呢? 阅读全文
posted @ 2021-02-25 19:11 极客子羽 阅读(1673) 评论(0) 推荐(0)
摘要: 介绍简单工厂模式,工厂方法模式和抽象工厂模式的应用。其中前两种较为常用,因此我在 Java 常用开源项目 MyBatis 和 Dubbo 中找到了这两种模式的蛛丝马迹。至于抽象工厂模式,个人感觉拓展时存在一些隐藏的“缺陷”,使用的场景并不多。 阅读全文
posted @ 2021-02-24 19:47 极客子羽 阅读(404) 评论(0) 推荐(1)
摘要: JDK1.7 中 HashMap 多线程成环问题,几乎已经成了Java程序员人人需要了解的知识了,本文就带大家来一切重现一下 HashMap 死循环 。 阅读全文
posted @ 2021-02-23 15:49 极客子羽 阅读(1106) 评论(0) 推荐(0)
摘要: Thread#interrupt() 这个方法仅仅是给线程设置一个打断标记,线程的打断需要应用程序的响应,如果没有响应,打断就不会被执行。 Thread#isInterrupted() 方法可以判断线程对象 thread 的打断标记是否被置位,支持多次判断,且结果一致。 Thread.interrupted() 返回当前线程是否被设置了打断标记,且重置线程为未打断状态。 阅读全文
posted @ 2021-02-16 21:26 极客子羽 阅读(768) 评论(0) 推荐(0)
摘要: DelayQueue 的性质: 1. 它是一个线程安全的队列。 2. 包含 PriorityQueue 的性质。 3. 放入该队列的元素必须实现 Delayed 接口 4. 从该队列取出对象时,需要询问对象的执行延迟。即队头不为 null 条件还不充分,还需要剩余延迟 delay <= 0,对象才能正常出队。这点比较特殊。 阅读全文
posted @ 2021-02-16 11:08 极客子羽 阅读(114) 评论(0) 推荐(0)
摘要: 解析Java源码之优先级队列 PriorityQueue。优先级队列的底层数据结构为“小根堆”。为了保持小根堆,常见的调整操作包括 siftUp 和 siftDown。siftUp 保证的是将元素 x 存放到位置 k,位置 k 之前的所有元素符合小根堆的性质。siftDown 是为了保证将元素 x 存放到位置 k 时,以 k 为“根节点”的子树符合小根堆的性质。 阅读全文
posted @ 2021-02-09 16:39 极客子羽 阅读(351) 评论(0) 推荐(0)
摘要: 从src/test/resources下的txt文件读取多行数据时,因为 windows 平台和 linux 平台 txt 文件换行符差异性,导致在 linux 平台上随机选取一行,结果总是空字符串的问题 阅读全文
posted @ 2021-01-31 17:24 极客子羽 阅读(1532) 评论(0) 推荐(0)
摘要: 前言 通过上一篇博客 here 的讲述,我们已经找到了有价值的“官方文档”。 本文自然是要来用 jol-core 来实战和深入理解 synchronized 锁和 Java 对象头之间的 “纠葛” 了。 Object header is the common structure at the beg 阅读全文
posted @ 2021-01-13 17:29 极客子羽 阅读(1645) 评论(0) 推荐(3)
摘要: 在 jdk1.6 以后, synchronized 锁借鉴了 Doug Lea 的锁设计思想,对 synchronized 锁的实现进行了优化。OpenJDK 和 Oracle Java 高度相似,因此我们可以学习 OpenJDK 来掌握 Java 底层原理。对象头主要由 mark word 和 klass pointer 两部分组成。 阅读全文
posted @ 2021-01-07 17:31 极客子羽 阅读(173) 评论(0) 推荐(1)
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 26 下一页