jvm基础+调优+面试题

JVM学习第一天

java程序员在学学习开发中遇到的问题!!!!(是不是很有同感)!!!

image-20200525152126041 image-20200525152439449

虚拟机概述

image-20201007202722539 image-20201008131517800 image-20201007202825896 image-20201007202914256

生命周期

image-20201007203208494 image-20201007203246690

JVM发展历程

image-20201007203344913 image-20201007203413839 image-20201007203447272 image-20201007203637877 image-20201007203830186

类加载器的作用

image-20201007210626068

类的加载过程

1.加载(Loading)
2.连接(Linking)
3.初始化(Initialization)
image-20201007212216854 image-20201007212656003 image-20201007213344117

类加载器分类

image-20201008121351462 image-20201008121425183 image-20201008121503702 image-20201008121621056 image-20201008121657825 image-20201008125908535

PC寄存器(程序计数器)

image-20201008133224284 image-20201008134131304

PC寄存器面试题

image-20201008134429988 image-20201008134804702

运行时数据区

内存中的栈和堆

image-20201008135509422 image-20201008140152566 image-20201008140518027

​ 特点:先进后出

队列:先进先出

栈中结构:

栈内存溢出;自己掉自己

image-20201008141606018 image-20201008143142911 image-20201008143239751 image-20201008150248022 image-20201008150201020 image-20201008150410923 image-20201009160625523

image-20201011213856257 image-20201011213801910 image-20201012204809807 image-20201012205025916

对象分配过程

image-20201012205732774 image-20201012210352291 image-20201012212456096

内存分配策略

image-20201012214243132

堆空间参数设置

image-20201012214500510 image-20201012215408940 image-20201012215456748

总结

堆不是分配对象的唯一选择,经过逃逸分析逃逸后的对象可以分配在栈上,但是目前逃逸分析技术并不成熟,无法保证逃逸分析的性能消耗一定能高于他的消耗。所有目前来说所有的对象分配还是在堆上

方法区

image-20201013122905925

常量池

image-20201013125717785 image-20201013125934777 image-20201013130449532 image-20201013131232781

常见面试题

image-20201013142805590 image-20201013142653616

创建对象的步骤

image-20201013151237047

String

image-20201013160800211

面试题

image-20201013161146052

image-20201013161517740

垃圾回收GC

image-20201013164022160

image-20201013164048645

image-20201013165000400

常用的垃圾回收算法

标记阶段:对象存活判断

image-20201013213804907

引用计数算法(java没有使用,容易内存泄漏)

image-20201013214013404

可达性分析算法(java选择)

image-20201013215326931 image-20201013215453023

对象的finalization机制

image-20201013215738302

清除阶段

标记清除算法

image-20201014104243920 image-20201014105033685

复制算法

image-20201014105919058

image-20201014105933861

标记压缩算法

image-20201014111936028

image-20201014112013174image-20201014112742806

其他

分代收集算法

image-20201014112742806

增量收集算法、分区算法

引用(强引用,软引用,弱引用,虚引用)

强引用(只要有引用,打死不回收,哪怕oom)

软引用(内存不够即回收)

弱引用(发现即回收)

虚引用(唯一目的就是能在这个对象被收集器回收时收到一个系统通知。)

image-20201014154832269

GC回收器

image-20201014160351926

image-20201014160936409 image-20201014161033302 image-20201014161346348 image-20201014161630911 image-20201014162027973 image-20201014162056908 image-20201014164517626 image-20201014164608259 image-20201014164714582 image-20201014164733288

小结

image-20201014161821290

image-20201014162445508

GC优化

//PicGo/image-20201014164714582.png" alt=“image-20201014164714582” style=“zoom:67%;” />

image-20201014164733288

小结

[外链图片转存中…(img-gwY8iFVN-1602665665148)]

image-20201014162445508

GC优化

image-20201014164923292
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值