装载
- 通过一个类的全限定名来获取定义此类的二进制字节流
- 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构
- 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口
加载时机(类仅加载一次)
- 实例化该类对象时
- 调用该类的静态方法或静态属性时
- JVM启动时调用main方法所在的类
- 调用java某些反射的方法(例如JDBC加载驱动类)
- 初始化该类的子类时
类加载器
- 适用场景:非数组类(s数组类由JVM直接创建)
- 双亲委派机制:首先委派父类加载器去加载,无法完成需求时,子类自身加载器加载
- 分类:
- 启动类加载器:C++实现
- 其他:java实现,继承抽象类java.lang.ClassLoader
- 好处:保证系统安全
连接
验证
- 目的&