大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制,编译过程和如何对Java程序进行调优相信都会有一个很好的认知。
废话不多说,直接带大家来初步认识一JVM下。
-
<李>
李>
JVM (Java虚拟机)是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据,内存和寄存器。
看到这里,可能不懂JVM的人,已经蒙圈了。没关系、下面让我详细为大家介绍JVM的体系架构图,或许你会明白些。
简单来说,JVM就是一个虚拟计算机。我们都知道Java语言其中的一个特性就是跨平台的,而JVM就是Java程序实现跨平台的关键部分. Java编译器编译Java程序时,生成的是与平台无关的字节码(也就是* . class文件),所谓的平台无关是指编译生成的字节码无论是在窗口,Linux, Mac系统都是可执行。也就是说Java编译生成的* . class文件不是面向平台的,而是面向JVM的。不同平台上的JVM都是不同的,但是他们都是提供了相同的接口。图一为Java的大致运行步骤:
<李> 李>上面我们是初步介绍了JVM的作用,那么要深入去了JVM解我们就需要了解JVM的体系结构,请看图二:
<李>类加载器如何知道* . class文件就是需要加载的文件?李> <李>如果我手动将一个普通文件的扩展名称改后为类缀,类装入器会加载这个文件吗?
李> <李>问群:478052716免费领取(Java架构资料,视频资料,BATJ面试资料)
李>实际上,类文件在文件的开头是有特定的文件标识的,随便编写一个Java程序,编译生成一个类文件,打开后你都能看到如下内容:
《初步了JVM解》第1章