05 2020 档案

摘要:1、Unsafe知识点整理 2、代码: package com.javabasic.unsafe; import java.lang.reflect.Field; import sun.misc.Unsafe; /** * Unsafe如何使用 * * 1、使用Unsafe.getUnsafe(); 阅读全文
posted @ 2020-05-29 11:44 心动如雷 阅读(505) 评论(0) 推荐(0)
摘要:一、概述 ThreadLocal是JDK包提供的,它提供了线程本地变量,也就是如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地副本。当多个线程操作这个变量时,实际操作的是自己本地内存里面的变量,从而避免了线程安全问题。 二、实现原理 ThreadLoca 阅读全文
posted @ 2020-05-28 15:17 心动如雷 阅读(581) 评论(0) 推荐(0)
摘要:参考《深入理解Java虚拟机》 一、Java内存模型 1、Java内存模型 2、内存间交互操作 流程图: 3、volatile关键字 两个特性: 3.1、保证变脸对所有线程的可见性; 由于volatile变量只能保证可见性,在不符合两条规则的运算场景中,仍然需要通过枷锁来保证原子性。 ①运算结果并不 阅读全文
posted @ 2020-05-28 10:06 心动如雷 阅读(157) 评论(0) 推荐(0)
摘要:1、概述 2、synchronized原理 3、字节码分析 Class组成: 引用参考:https://snailclimb.gitee.io/javaguide/#/docs/java/jvm/%E7%B1%BB%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84 举例1: p 阅读全文
posted @ 2020-05-26 17:19 心动如雷 阅读(237) 评论(0) 推荐(0)
摘要:一、概述 1、线程安全:ArrayList和LinkedList非线程安全的、Vector线程安全的,synchronized同步锁机制。 2、底层数据结构:ArrayList和Vector底层数据结构是数组;LinkedList双向链表。 3、时间复杂度是否受插入和删除元素位置影响:ArrayLi 阅读全文
posted @ 2020-05-21 14:56 心动如雷 阅读(193) 评论(0) 推荐(0)
摘要:一、UML类图 ConcurrentHashMap键值不能为null; 底层数据结构是数组+链表/红黑树; 采用CAS和synchronized来保证并发线程安全。 参考文章: CAS文章:https://blog.csdn.net/v123411739/article/details/795614 阅读全文
posted @ 2020-05-21 10:42 心动如雷 阅读(169) 评论(0) 推荐(0)
摘要:一、UML类图 TreeMap类底层数据结构红黑树,键不能为空值可以为空;非线程安全的;可以自定义实现Comparator接口的键比较器。 TreeMap实现NavigableMap接口,NavigableMap接口定义导航方法;同时NavigableMap继承SortedMap接口,SortedM 阅读全文
posted @ 2020-05-20 15:55 心动如雷 阅读(200) 评论(0) 推荐(0)
摘要:1、概述 LinkedHashMap继承自HashMap;在HashMap基础上,通过维护一条双向链表,解决了HashMap键值对遍历顺序和插入顺序一致的问题。 想了解LinkedHashMap源码,首先需要了解HashMap源码。 2、原理 3、源码分析 结合我的《源码分析(1)-HashMap( 阅读全文
posted @ 2020-05-19 18:02 心动如雷 阅读(177) 评论(0) 推荐(0)
摘要:学习JavaGuide性能调优时,场景模拟。(基础环境JDK1.8、SpringBoot) 一、模拟CPU占满场景 controller代码如下: /** * 模拟CPU占满 */ @GetMapping("/test/cpuLoop") public void testCPULoop() thro 阅读全文
posted @ 2020-05-18 15:41 心动如雷 阅读(521) 评论(0) 推荐(0)