JVM入门篇

JVM探究

  • 请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?
  • 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析?
  • JVM的常用调优参数有哪些?
  • 内存快照如何抓取,怎么分析Dump文件?知道吗?
  • 谈谈JVM中,类加载器你的认识?

1.JVM的位置

  • JRE包含JVM(用C编写的)
    在这里插入图片描述

2.JVM的体系结构
在这里插入图片描述只有堆和方法区(特殊的堆)中会产生垃圾,所说的JVM调优百分之99都是在堆和方法区中进行调优!
3.类加载器
作用:加载Class文件~
在这里插入图片描述

1.启动类(根)加载器BootstrapClassLoader
2.扩展类加载器ExtClassLoader 
3.系统类加载器AppClassLoader
4.用户自定义类加载器CustomClassLoader

4.双亲委派机制

1.APP-->EXC-->BOOT(最终执行) 
类加载器收到类加载的请求
将这个请求向上委托给父类加载器去完成,一直向上委托,直到启动类加载(Boot)
启动加载器检查是否能够加载当前这个类,能加载就结束了使用当前加载器,否则,抛出异常,通知子加载器进行加载
重复上一个步骤

Class Not Found
null:java调用不到~C,C++
JAVA=C++--(去掉了指针和内存管理)

5.沙箱安全机制
沙箱安全机制
6.Native

 会进入本地方法栈
 调用本地方法本地接口    JNI
 JNI作用:扩展Java的使用,融合不同的编程语言为JAVA所用!
 它在内存区域专门开辟了一块标记区域:Native Method Stack 登记native方法
 只要是有native关键字的,说明java的作用范围达不到了,回去调用底层c语言的库!

7.PC寄存器

PC寄存器( PC register ):每个线程启动的时候,都会创建一个PC(Program Counter,程序计数器)寄存器。PC寄存器里保存有当前正在执行的JVM指令的地址。 每一个线程都有它自己的PC寄存器,也是该线程启动时创建的。保存下一条
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值