随笔分类 - JVM
摘要:1.前言 之前的文章记录了一下Java的内存模型和线程的关系,其实已经由内存模型谈到了线程安全的问题。本文将对线程安全进行具体的描述,对锁的实现进行探究,要明白锁的原理是什么,才能更好的利用锁,排查相关问题。 2.线程安全 《Java Concurrency In Practice》作者Brian
阅读全文
摘要:1.前言 本文记录一下Java的线程与内存等知识,更好的理解Java的线程是如何工作的。 让计算机并发执行若干个运算任务和更充分地利用计算机处理器的效能之间看起来是因果关系,但实际上没那么简单。CPU的运算能力十分强大,但是任何任务都不太可能单单靠CPU就能够完成,比如读取内存,存储的数据,网络的请
阅读全文
摘要:1.前言 本文记录内容来自《深入理解Java虚拟机》的第十章早期(编译期)优化其中一节内容,其他的内容个人觉得暂时不需要过多关注,比如语法、词法分析,语义分析和字节码生成的过程等。主要关注的就是Java的一些语法糖是如何实现的。 语法糖不会提供实质性的功能改进,但是它们或能提高效率,或能提升语法的严
阅读全文
摘要:1.前言 之前对虚拟机的加载机制进行了描述:这里,本章主要对虚拟机的运行机制进行记录说明。 虚拟机区别于物理机就在于运行方面,物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层次上的,虚拟机的执行引擎是自己实现的,可以自行定制指令集。所以JVM可以进行跨平台。 2.栈帧的结构 在最早的文章
阅读全文
摘要:1.前言 本章记录一下Class文件是怎么被加载到内存中进行执行的。 虚拟机并没有约束一定是本地文件才能进行加载,网络文件也是可以的,也没有约束必须是Java文件,一切遵守虚拟机解析规则的文件都能被加载,Java对应的就是Class字节码文件了。 不同于其他语言,在编译时就需要进行连接,Java语言
阅读全文
摘要:1.前言 本篇文章记录一下常见的虚拟机性能监控和排查工具的作用和使用方法。 2.JDK命令行工具 jdk的bin目录下有着很多exe可执行程序,我们常用的就是java、javac运行和编译命令了。但是还有很多其它用于检测虚拟机运行状态的命令。本章对其进行介绍,学习如何使用。这些工具体积一般很小,原因
阅读全文
摘要:1.前言 本文归纳一下对Java内存管理机制的理解,尽可能通俗易懂,知识来自于深入理解Java虚拟机一书。 2.起源 计算机简单理解就是根据执行计划,通过参数得到结果。执行计划就是程序了,参数就是实际变量,最终运行得到我们要的结果。磁盘由于其廉价且持久化,用于保存程序和数据,但是受制于执行速度,内存
阅读全文
摘要:转载请注明源出处:http://www.cnblogs.com/lighten/p/5971424.html 1.前言 Java由于有自动内存管理机制,所以开发人员一般不需要担忧内存泄漏等问题。但是这不意味着内存问题不会发生,由于不关注内存相关的问题,使得查找这方面的问题显得异常困难,所以了解虚拟机
阅读全文
摘要:转载请注明源地址:http://www.cnblogs.com/lighten/p/5906359.html 1. 编译环境的准备 1.1 JDK源码下载 OpenJDK是JAVA发展史中的一个开源项目,本文以OpenJDK8为例进行编译。OpenJDK的官网为:http://openjdk.jav
阅读全文

浙公网安备 33010602011771号