笔记(jvm)

jvm的组成部分及其作用

  • 类加载器
  • 运行时数据区
  • 执行引擎
  • 本地库文件

首先类加载器把java代码转化为字节码,运行时数据区把字节码传入内存,执行引擎把字节码转化为底层系统指令给cpu去执行,在这个过程中要用到其他语言的本地库接口来实现。

堆栈的区别

  • 栈存储的是局部变量,堆存储的是实体
  • 栈内的元素更新速度比堆快
  • 栈内的元素一旦生命周期到了就会释放掉,堆内的实体会通过回收机制不定时回收

双亲委派机制

当一个类加载器收到加载请求时,不会立即去加载这个请求,而是把这个请求发送给他的父类去加载,每一层的类加载器都是如此,这样所有的加载请求都会传送到顶层的启动类,只有当父类无法加载请求时,子类才会去尝试加载。

类加载过程

首先根据查找路径找到对应的class文件,然后检查class文件的正确性,准备给类中的静态变量分配存储空间,虚拟机将常量池中的符号引用替换为直接引用,最后对静态变量和代码执行初始化工作

jvm回收算法

  • 标记-清除
  • 标记-整理
  • 复制
  • 分代

新生代和老生代的垃圾回收器的区别

新生代一般用的时复制算法(效率高,内存利用率低)

老生代用的是标记-整理

jvm调优工具

  • jconsole 用于对jvm的内存、线程、类进行监控
  • jvisualvm jdk自带的全能分析工具,可以分析:内存快照、线程快照、程序死锁、内存变化、gc变化等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值