最近这几年,关于java虚拟机有的面试题确实在提高,尤其是大厂的面试。而有关于Java虚拟机,确实有助于提高java程序员的编程能力,在JVM性能调优更是必不可少的。如阿里巴巴这样的大公司,也出了自己的JVM,就是TAOBAOVM。JVM做大的作用便是实现程序的跨平台运行。下面讲义HotSpot虚拟机为例,介绍一下虚拟机。从今天起JVM系列开始了,自嗨而已,并不高深,不小心看到此篇文章的同学,献丑了。
1.java的运行过程,如下图所示,java源代码,即我们平时写代码的时候编写的.java文件的代码,经过java编译器后(java最初的编译器只有解释器,这个不做展开了),生成.class文件,装载字节码等。图比人更加权威,看图更加的直观易懂。
2.java虚拟机的结构
2.java虚拟机的结构
按照我的分类,把java虚拟机的结构分为两类:即线程共享徐和线程独占区,结合这样的认识,我们可以知道线程的安全问题。
线程共享区 :java堆 ; 方法区
线程独享去:虚拟机栈,本地方法栈,程序计数器
具体如图所示:
今天粗劣讲了梗概,日后会坚持写完,虚拟机堆、虚拟机栈、程序计数器、方法区、本地方法区等一一详细介绍。最后在我能力的范围内深入介绍多线程。