class加载的过程
- 读取class文件到内存中
- 将字节流的静态存储结构转化成方法区的运行时数据结构
- 生成一个代表类的Java.lang.Class对象,作为方法区数据访问入口
- 验证
- 准备 为类变量进行内存分配,初始化当前类型的默认值
- 解析 符号引用 转变成 直接引用
- Classloader
ClassLoader双亲委派加载机制
四种ClassLoader
- Bootstrap ClassLoader
- 加载$JAVA_HOME中jre/lib/rt.jar里所有的class以及-Xbootclasspath选项指定的jar包
- ExtClassLoader
- 加载java平台中扩展功能的jar包,包括$JAVA_HOME中jre/lib/*.jar以及-Djava.ext.dirs指定目录下的jar包
- AppClassLoader
- 加载classpath中的jar包以及-Djava.class.path指定目录下的类和jar包
- Custom ClassLoader
-
通过java.class.ClassLoader的子类加载class,术语应用程序根据自身需要定义的ClassLoader,如tomcat,jboss都会根据j2ee规范自行实现ClassLoader
-
方法的执行
一个方法是一个栈帧
网友评论