工作的开端四

类加载过程

  虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析、初始化,最终形成可以被虚拟机执行使用的Java类型 

加载:class文件读入内存,创建一个java.lang.Class对象。

验证:校验读取的class文件满足虚拟机要求。

准备:为类变量分配内存空间,赋零值。

解析:将常量池中所有的符号引用全部转成直接引用。

初始化:执行static标识的代码段。

双亲委派模型 解决了各个类加载器的基础类的统一问题
  一个类加载器收到类加载的请求,先把请求委托给父加载器去完成。
  父加载器在它的搜索范围中没有找到所需的类时,子加载器才会尝试自己去加载该类。

名称特征作用配置异常
栈区 线程私有,使用一段连续的内存空间 存放局部变量表、操作栈、动态链接、方法出口 -XSs StackOverflowError OutOfMemoryError
线程共享,生命周期与虚拟机相同 保存对象实例 -Xms -Xmx -Xmn OutOfMemoryError
程序计数器 线程私有、占用内存小 字节码行号
方法区 线程共享 存储类加载信息、常量、静态变量等 -XX:PermSize -XX:MaxPermSize OutOfMemoryError
原文地址:https://www.cnblogs.com/sg9527/p/8672396.html