
Java虚拟机
文章平均质量分 94
java虚拟机,JVM系列教程
Nicky.Ma
优秀
展开
-
JVM系列之Java是解释性语言还是编译型语言?(一)
JVM系列之Java是解释性语言还是编译型语言?然后就可以知道为什么说Java是解释性语言+编译型语言。通过学习,我们知道了,Java园代码经过javac转成class类文件,然后通过类加载器加载到运行时数据区,class文件是一种很特殊的文件,只能通过JVM来翻译,可以说字节码是 JVM 原生的特殊机器语言,而这个翻译大部分是通过JVM解释器的,JVM 根据调用方法的频率使用 JIT 编译器,称之为运行时编译,即JIT(Just In Time)原创 2021-07-05 18:13:13 · 2073 阅读 · 11 评论 -
JVM系列之JDK、JRE、JVM的区别是什么?(二)
JVM系列之JDK、JRE、JVM的区别是什么?JDK 8 是 JRE 8 的超级集,包含 JRE 8 中的一切内容,以及开发苹果和应用程序所需的编译器和调试器等工具。JRE 8 提供库、Java 虚拟机器 (JVM) 和其他组件,以运行用 Java 编程语言编写的苹果和应用程序。请注意,JRE 包括 Java SE 规范未要求的组件,包括标准组件和非标准 Java 组件。原创 2021-07-05 15:25:12 · 2837 阅读 · 41 评论 -
JVM系列之Class类文件(从源码到Class类文件)(三)
JVM系列之Class类文件(从源码到Class类文件),java源代码经过javac编译为class类文件,class类文件经过类加载器ClassLoader被加载到虚拟机,Java虚拟机各种执行过程(垃圾回收、本地调用等等)原创 2021-07-02 17:03:55 · 2290 阅读 · 31 评论 -
JVM系列之类加载机制(从类文件到虚拟机)(四)
JVM系列之类加载机制(从类文件到虚拟机),类加载机制,所谓的类加载机制就是虚拟机将class文件加载到内存,并对数据进行验证,转换解析和初始化,形成虚拟机可以直接使用的java类型(即java.lang.class)原创 2021-06-03 14:43:21 · 1963 阅读 · 15 评论 -
JVM系列之运行时数据区(Run-Time Data Areas)(五)
JVM系列之运行时数据区(Run-Time Data Areas),运行时数据区,是java虚拟机定义的在程序执行期间使用的各种运行时的数据区。这些运行时数据区分为两种,一种是在java虚拟机启动时创建,仅在java虚拟机退出时才被销毁,这种可以理解为线程共享的。另外一种是数据区是针对每个线程的,是在创建线程时创建的,并在线程退出时销毁这个数据区,这种可以理解为线程私有的。原创 2021-06-03 18:05:01 · 1888 阅读 · 8 评论 -
JVM系列之内存模型(Java Memory Model)(六)
JVM系列之内存模型(Java Memory Model),在上一章的学习中,我们照着官网学习了java虚拟机运行时数据区,这一章学习java虚拟机内存模型(Java Virtual machine menory model),可以这样理解,jvm运行时数据库是一种规范,而JVM内存模型是对改规范的实现原创 2021-06-04 17:14:19 · 3269 阅读 · 85 评论 -
JVM系列之垃圾回收机制(Garbage Collect)(七)
JVM系列之垃圾回收机制(Garbage Collect)在前面章节的学习中,我们知道了java虚拟机的运行时数据区和类加载机制,了解了在堆内存中是有垃圾回收的,比如young区的Minor GC,Old区的Major GC,young区和old区的full GC。对于一个内存中的对象,怎么确定它需要回收的?怎么样对它进行回收?原创 2021-06-22 17:48:25 · 2393 阅读 · 12 评论 -
JVM系列之性能调优参考手册(实践篇)(八)
JVM系列之性能调优参考手册(实践篇)在前面章节的学习,我们对JVM的体系架构等等有了比较详细的了解,所以可以对这些理论进行实践,当然只是通过一些example,实践的生产环境要复杂得多,所以本博客只能作为学习参考资料。一般来说,JVM内部是经过很多的实践和优化的,所以一般调休是先通过java提供的工具进行性能问题排查,找出影响性能的代码,然后迫不得已才可以考虑调整JVM参数,进行JVM参数调优原创 2021-07-08 19:46:22 · 2451 阅读 · 16 评论