描述一下JVM加载Class文件的原理和机制
1、JVM中类的加载是由ClassLoader和它的子类来实现的,Java ClassLoader是一个很重要的java运行时系统组件,他负责在运行时查找和装入类文件的类。java中的所有类,都需要装载到JVM中才能运行,
类加载器本省就是一个类,它的工作就是将class文件从硬盘读取到内存中。
2、类装载的方式有两种:
隐式转载:程序在运行过程中碰道通过new等方式生成对象时,隐式调用类加载器加载对应的类到jvm中
显示装载:通过class.forname()等方法,显示加载需要的类
3. 类加载的五个过程:加载、验证、准备、解析、初始化。
1、加载:加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.class对象,作为方法区这个类的各种数据的接口。
2、验证:这一阶段的主要目的是为了确保Class文件中的字节流中包含的信息是否符合当前虚拟机的要求,并且不会危害虚拟机自身的安全
3、准备:准备阶段是正式为类变量分配内存并设置类变量的初始阶段,即在方法区中分配这些变量所需要的内存空间
4、解析:解析阶段是虚拟机将常量池中的符号引用替换为直接引用的过程
5、初始化:初始化阶段是执行类构造器方法的过程,方法是由编辑器自动收集类中的类变量的赋值操作和静态语句块中的语句合并而成的。虚拟机会保证方法执行之前,父类的
方法已经执行完毕
4. JVM的分区:程序计数器、本地方法栈、方法区、栈和堆
GC
5. GC的基本原理
当程序员在创建对象时,GC就开始监控这个对象的地址、大小以及使用情况,GC