什么是java虚拟机的类加载机制?
简单的说,就是虚拟机将.class文件加载到内存,通过几个步骤将其转换成能够被虚拟机使用的java类型。
那么都通过了哪几个步骤呢?
1. 加载(通过绝对路径获取类的二进制字节流)
2. 连接(关键步骤,该过程又包含三步)
·验证(四种验证,分别是文件格式验证(见名知意),元数据验证(是否符合Java语言规范),字节码验证(最主要验证,是否对虚拟机产生危害),符号引用验证)
·准备(分配内存)
·解析(对类,接口,字段等等解析)
3. 初始化 到了这个步骤才是执行程序员自己代码的时候(例如执行类的构造)
4. 使用
5. 卸载
什么是类加载双亲委派机制?
一张图就够了: