JVM复习

JVM复习

首先自己画一个JVM内存模型的图
在这里插入图片描述

类加载子系统

  • 类加载子系统负责加载class文件
  • 只负责加载 能否运行由执行引擎决定
  • 加载好的类信息被放在了方法区中。

加载-》验证-》准备-》解析-》初始化

  • 加载:通过这个类的全限定名获取这个类的二进制字节流
  • 验证:比如验证cafebabe 就是对象头的这个内容
  • 准备:为类变量分配内存并且设置该变量的初始值
  • 解析:将常量池的符号引用转换为直接饮用的过程
  • 初始化:执行这个类的构造器方法的过程

双亲委派机制

首先是由应用程序类加载器(系统类加载器)进行委托,委托至拓展类加载器,再向上委托至启动类加载器具。
如果其中有人加载过了,则直接调用,如果没有继续询问。然后一层一层再问询下来,直到能加载这个类的的加载器进行加载。

如果希望打破双亲委派机制,需要重写loadClass这一方法。让他不进行findclass这一方法,直接加载。

双亲委派的优势在于,不会重复加载,节省资源。以及保证安全性,防止一些系统级的类被篡改。

用来存放变量,那些动态的。比如new出来的。

栈中存放的是基本数据类型,以及对于堆中对象的引用。

局部变量表

操作数栈

动态链接

方法出口

本地方法栈

一些native方法被调用时用到的。

方法区

用来保存。加载后的类信息(完整名字),域信息,方法信息,常量池,静态变量,指向类加载器的引用,方法表。

程序计数器

多线程切换时用于记录目前这个线程中运行到了哪一步。

GCRoot可达性分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值