摘要:
Java虚拟机对class文件采用的是按需加载的方式,当需要使用该类时才会将它的class文件加载到内存生成class对象。加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,是一种任务委派模式。 工作原理: 如果一个类加载器收到了类加载请求,它并不会自己先去加载 阅读全文
摘要:
JVM支持两种类型的类加载器,引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)。Java的核心类库都是使用引导类加载器进行加载的,例如String类就是用引导类进行加载的。 自定义类加载器一般指程序中由开发人员自定义的一类 阅读全文
摘要:
Java程序对类的使用方式分为:主动使用和被动使用。主动使用分为七种情况: 创建类的实例 访问某个类或接口的静态变量,或者对该静态变量赋值 调用类的静态方法 反射 初始化一个类的子类 Java虚拟机启动时被标明为启动类的类 JDK7开始提供的动态语言支持:java.lang.invoke.Metho 阅读全文
摘要:
加载: (1) 通过一个类的全限定名获取定义此类的二进制字节流。 (2) 将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构。 (3) 在内存中生成一个代表该类的java.lang.class对象,作为方法区这个类的各种数据访问入口。 加载class文件的方式: (1)从本地系统中直接加载 阅读全文
摘要:
类加载子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识。Classloader只负责class文件加载,具体是否可以运行由ExecutionEngine决定。 加载类信息存放于一块方法区的内存空间,除此外,方法区还存放运行时常量池信息,可能还有字符串字面量和 阅读全文