我们所写的java程序,经过Java编译器把java代码编译为存储字节码的class文件,虚拟机所处理的正是这些Class文件。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。
类加载器
Java语言是在运行期动态加载的,即我们所写的类并不是在程序启动时,一次性进行加载的,而是在实际使用到时才进行动态加载。只有当某个类的Class文件被加载到内存之后,对于这个类的引用才有效,否则会产出异常。ClassLoader则是用来实现把Class文件加载到内存的。