认知 Java Class Loading

对 Java Class Loading 的认知,从OOP (Object Oriented Programming) 界的一句谚语开始,那就是:Everything is Object。以现实举例,张三是对象(object),李四也是对象(object),对这些个体加以抽象,形成了类(class)的概念。这类和对象的区别在于,前者是抽象的概念,不论是时间,还是空间均不存在这么一个东西;后者是具体的物件,可摸得着、看得见。

在 Java 中使用关键字 class 来定义一个类,经过编译之后,便会生成一个后缀为 .class 的文件。在 Java 程序运行时,JVM 需要载入这些 .class 文件到内存中,已构造成对应的 类(class)。而这载入的过程正是由 java.lang.ClassLoader 的实例来完成,根据 JVM 的策略,不同的类(class)被组织进不同的 jar 文件,进而按照重要级别划分成不同的等级,由不同的 class loader 来负责载入。

[ Read More » ]