![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
张磊BARON
微信公众号:BaronTalk
展开
-
系列 | 深入理解Java虚拟机一(自动内存管理机制)
欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 书籍真的是常读常新,古人说「书读百遍其义自见」还是蛮有道理的。周志明老师的这本《深入理解 Java 虚拟机》我细读了不下三遍,每一次阅读都有新的收获,每一次阅读对 Java 虚拟机的理解就更进一步。因而萌生了将读书笔记整理成文的想法,一是想检验下自己的学习成果,对学习内容进行一次系统性的复盘;二是给还没接触过这部好作品的同学推荐下,...原创 2019-06-12 15:27:18 · 479 阅读 · 0 评论 -
系列 | 深入理解Java虚拟机二(类文件结构)
首发于微信公众号:BaronTalk,欢迎关注! 之前在阅读 ASM 文档时,对于已编译类的结构、方法描述符、访问标志、ACC_PUBLIC、ACC_PRIVATE、各种字节码指令等等许多概念听起来都是云山雾罩、一知半解,原因就在于对类文件结构和类加载机制不够了解。直到后来细读了《深入理解 Java 虚拟机》中虚拟机执行子系统的相关内容,才建立了清晰的认知。如果你也和我一样,不了解类结构和类加...原创 2019-08-16 12:17:12 · 269 阅读 · 0 评论 -
系列 | 深入理解Java虚拟机三(类加载机制)
首发于微信公众号:BaronTalk,欢迎关注! 上一篇文章我们介绍了「类文件结构」,这一篇我们来看看虚拟机是如何加载类的。 我们的源代码经过编译器编译成字节码之后,最终都需要加载到虚拟机之后才能运行。虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。 与编译时需要进行连接工作的语言...原创 2019-08-16 12:24:13 · 345 阅读 · 2 评论 -
系列 | 深入理解Java虚拟机四(字节码执行引擎)
首发于微信公众号:BaronTalk,欢迎关注! 执行引擎是 Java 虚拟机最核心的组成部分之一。「虚拟机」是相对于「物理机」的概念,这两种机器都有代码执行的能力,区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机执行引擎是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 在 Java 虚拟机规范中制定了...原创 2019-08-16 12:28:05 · 307 阅读 · 0 评论 -
系列 | 深入理解Java虚拟机五(程序编译与代码优化)
首发于微信公众号:BaronTalk,欢迎关注! 对于性能和效率的追求一直是程序开发中永恒不变的宗旨,除了我们自己在编码过程中要充分考虑代码的性能和效率,虚拟机在编译阶段也会对代码进行优化。本文就从虚拟机层面来看看虚拟机对我们所编写的代码采用了哪些优化手段。 一. 早期优化(编译期优化) Java 语言的「编译期」其实是一段「不确定」的操作过程。因为它可能是一个前端编译器(如 Javac)把 ...原创 2019-08-16 12:32:50 · 385 阅读 · 0 评论 -
系列 | 深入理解Java虚拟机六(高效并发)
首发于微信公众号:BaronTalk,欢迎关注! 高效并发是 JVM 系列的最后一篇,本篇主要介绍虚拟机如何实现多线程、多线程间如何共享和竞争数据以及共享和竞争数据带来的问题及解决方案。 一、Java 内存模型与线程 让计算机同时执行多个任务,不只是因为处理器的性能更加强大了,更重要是因为计算机的运算速度和它的存储以及通信子系统速度差距太大,大量的时间都花费在磁盘 I/O 、网络通信和数据库访...原创 2019-08-16 12:36:46 · 852 阅读 · 1 评论