JVM

本文详细介绍了JVM的内存区域,包括JVM的位置、体系结构、类加载器、双亲委派机制、沙箱安全机制、本地方法区等。重点讨论了堆内存的新生区、老年区、永久区以及垃圾回收机制,强调99%的JVM调优集中在方法区和堆。还探讨了不同GC算法的优缺点,并提到了JMM(Java内存模型)及其对线程间共享变量的管理规则。
摘要由CSDN通过智能技术生成

jvm的位置

在这里插入图片描述

jvm的体系结构

  1. Stack、native method stack、程序计数器肯定不会有垃圾回收

  2. 99%JVM调优是调优方法区和堆

    在这里插入图片描述

类加载器

作用:加载class文件

在这里插入图片描述

  1. 启动类(根)加载器 BOOT

  2. 扩展类加载器 EXC

  3. 应用程序加载器 APP

  4. 用户自定义类加载器

双亲委派机制:安全

在这里插入图片描述

  1. 类加载器收到类加载请求

  2. 将这个请求自下而上判断是否加载过,一直向上委托,直到boot加载器(蓝色)

  3. 类加载器自上而下检查是否能够加载当前这个类,能加载就结束,使用当前的加载器,否则抛出异常,通知子加载器进行加载(红色)

  4. 重复步骤3

    Class Not Found~

    null:java调用不到~C、C++

    java==C+±-:去掉繁琐的东西,指针,内存管理~

作用

  1. 防止重复加载同一个.class

  2. 保证核心.class不被篡改

沙箱安全机制

将java代码限定在JVM特定的运行范围中,并严格限制代码对本地资源访问

基本组件:

  1. 字节码校验器:确保java类文件遵循java语言规范。(核心类不经过)
  2. 类装载器:
  3. 防止恶意代码去干涉善意代码;//双亲委派机制
  4. 守护了被信任的类库边界
  5. 将代码归入保护域,确定了diamante可以进行哪些操作

native(本地方法区)

  • 凡是带了native关键字的,说明java的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值