JAVA是一门编译型还是解释型语言?相信不少读者朋友在面试中已经和这个问题打过交道,该问题可以考察面试者对于JAVA文件到最终的程序运行整个过程是否有基本的了解。事实上,JAVA既是编译型也是解释型,我们的源文件.java文件产生出.class文件时,这个过程是通过编译完成的,当.class文件到内存中可执行的命令和对象时,这个过程又是基于解释完成的。那么本篇介绍的虚拟机类加载机制就是指.class文件到可执行命令和对象的过程。
类加载的时机
一个类从开始加载到最后回收卸载,其生命周期将经历加载、验证、准备、解析、初始化、使用和卸载7个步骤,其中,验证、准备、解析三个阶段又合并成为连接,如下图所示:
(类的生命周期)