自律会带来底气,底气会带来自信,自信会让生活更美好
文章平均质量分 84
求学旅途
一名求学者
展开
-
别忘记奔跑-JVM+GC全解析(结合各方材料深入理解)
JVM+GC解析1 复习1.1 JVM内存结构1.1.1 体系概述1.1.2 Java8以后的JVM-Xms 堆的初始值是多大 (初始化堆内存默认是1/64)-Xmx 堆的最大值是多大 (最大堆内存默认是物理内存的1/4)1.2 GC的作用域1.3 常见的垃圾回收算法1.3.1 引用计数1.3.2 复制1.3.3 标记清除 (会导致内存碎片)1.3.4 标记整理2 进一步学习2.1 JVM垃圾回收的时候如何确定垃圾?什么是G原创 2021-02-18 21:56:11 · 455 阅读 · 0 评论 -
别忘记奔跑-CountDownLatch/CyclicBarrier/Semaphore 阻塞队列 线程池 死锁编码及定位
目录一、CountDownLatch/CyclicBarrier/Semaphore使用过吗?1.1CountDownLatch1.2CyclicBarrier1.3 Semaphore二、阻塞队列知道吗?2.1 队列+阻塞队列2.2 为什么用?有什么好处?2.3 BlockingQueue的核心方法2.4 架构梳理+种类分析2.4.1 架构介绍2.4.2 种类分析2.5 用在哪里2.5.1 生产者消费者模式三 线程池用过吗?ThreadPoolE..原创 2021-01-23 17:52:48 · 498 阅读 · 0 评论 -
别忘记奔跑-synchronized和lock有什么区别?用新的lock有什么好处?
1 原始构成 synchronized是关键字属于jvm层面 monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象,只有在同步块或方法中才能调用wait/notify等方法) monitorexit lock是具体类(java.util.concurrent.locks.lock)是api层面的锁2 使用方法 synchronized 不需要用户去手动释放锁,当sy...原创 2021-01-19 23:20:31 · 103 阅读 · 0 评论 -
别忘记奔跑-公平锁/非公平锁/可重入锁/递归锁/自旋锁
一、我们知道ArrayList是线程不安全,请编写一个不安全的案例并给出解决方案。集合类不安全的问题* ArrayList* HashSet(见JUC博客)* HashMapimport java.util.List;import java.util.UUID;import java.util.concurrent.CopyOnWriteArrayList;/** * 集合类不安全的问题 * ArrayList * */public class ContainerN.原创 2021-01-15 15:00:16 · 135 阅读 · 0 评论 -
别忘记奔跑-volatile CAS ABA问题
1.JMM 可见性、原子性、VolatileDemo代码演示可见性+原子性代码、有序性2.volatile是Java虚拟机提供的轻量级的同步机制(乞丐版的synchronized):保证可见性,不保证原子性,禁止指令重排Java 汇编案例解释:禁止指令重排小总结:...原创 2021-01-14 21:16:11 · 1598 阅读 · 5 评论