一、JVM基础
1、JVM简介
JVM是Java Virtual Machine(Java虚拟机)的英文简写,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java编程语言在引入了Java虚拟机后,使得Java应用程序可以在不同操作系统平台上运行,而不需要再次重新编译。Java编程语言通过使用Java虚拟机屏蔽了与具体操作系统平台相关的信息,保证了编译后的应用程序的平台兼容性,使得Java应用程序只需编译生成在Java虚拟机上运行的目标代码(字节码),就可以在不同的操作系统上部署和运行。Java虚拟机本质上可以认为是运行在操作系统上的一个程序、一个进程。
Java虚拟机在启动后就开始执行保存在字节码文件中的指令,其内部组成结构如图所示。
在JDK1.8(Java 8)及以后的版本中,JVM的内部组成结构发生了一些小的变化,如图所示。
2、类加载器
类加载器(Class Loader)负责将编译好的.class字节码文件加载到内存中,使得JVM可以实例化或以其他方式使用加载后的类。类加载器支持在运行时的动态加载,动态加载可以节省内存空间,灵活地从本地或者网络上加载类,可以通过命名空间的分隔来实现类的隔离,增强了整个系统的安全性等。
类加载器分为如下几种ÿ