java 代码执行

参考文档:【Java核心技术卷】Java的解释执行与编译执行 1. JVM 简介 一种能够运行 Java 字节码 (class) 的虚拟机。 JVM 有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有一套字节码指令集。JVM 屏蔽了与具体操作系统平台相关的信息,使得Java 程序只需要生成在 J

基础 

JVM

参考文档: JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代 【转】Java中的新生代、老年代、永久代和各种GC 0. JVM 知识图谱 1. 线程 这里所说的线程指程序执行过程中的一个线程实体。JVM 允许一个应用并发执行多个线程。 Hotspot JVM 中的 Java 线程与原生操

JVM 

Unsafe 类

参考文档: 浅析 Unsafe 的使用 干掉Random:这个类已经成为获取随机数的王者 1. Unsafe 简介 Unsafe 是 java 留给开发者的后门,用于直接操作系统内存且不受 jvm 管辖,实现类似 C++ 风格的操作。 Oracle 官方一般不建议开发者使用 Unsafe 类,因为正

基础 

java 对象头

参考文档:Java对象结构与锁实现原理及MarkWord详解 1. 简介 我们都知道,Java 对象存储在堆(Heap)内存。那么一个 Java 对象到底包含什么呢?概括起来分为对象头、对象体和对齐字节。如下图所示: 对象的几个部分的作用: 对象头中的 Mark Word(标记字)主要用来表示对象的

基础 

java module

参考文档:JDK9的新特性:JPMS模块化 1. 简介 JDK9 引入了一个新的特性叫做 JPMS(Java Platform Module System),也可以叫做 Project Jigsaw。模块化的本质就是将一个大型的项目拆分成为一个一个的模块,每个模块都是独立的单元,并且不同的模块之间可

基础 

ThreadLocal

参考文献:深入分析 ThreadLocal 内存泄漏问题 1. 实现原理 ThreadLocal 的实现是这样的:每个 Thread 维护一个 ThreadLocalMap 映射表,这个映射表的 key 是 ThreadLocal 实例本身,value 是真正需要存储的Object。 也就是说 Th

基础 

java 时间

1. 名词解释 1.1 UTC Coordinated Universal Time协调世界时, 是个世界标准时间。 1.2 GMT GMT(Greenwich Mean Time,格林威治时间)是时区时间。 GMT = UTC +0, 和 UTC 的值是一样的。 Tue Mar 15 03:25:

基础 

AQS 框架

参考文档:深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念 1. AQS 框架和概念 1.1 思考 我们去学习一个知识点或开启一个新课题时,最好是带着问题去学习,这样针对性比较强,且印象比较深刻,主动思考带给我们带来了无穷的好处 抛开AQS,设想以下问题: Q:如果我们遇到 thre

 

java 锁

1. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操

 

ReentrantReadWriteLock

参考文档:ReadWriteLock场景应用解析 1. 介绍 为了提高性能,Java 提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,如果没有写锁的情况下,读是无阻塞的,在一定程度上提高了程序的执行效率。 读写锁分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由 jvm 自己控制