java JVM总结

在这里插入图片描述
在这里插入图片描述

复制算法

在这里插入图片描述

标记清除

在这里插入图片描述

标记整理

在这里插入图片描述

gc root

在这里插入图片描述

jvm参数类型

1.标配参数
在这里插入图片描述

2.x参数

在这里插入图片描述

3.xx参数

Boolean类型
公式:-XX+或者-某个属性值(+表示开启-表示关闭)
jps
jinfo:查看java正在运行java程序后台信息
例查看属性是否开启:jinfo -flag PrintGCDetails {进程号}
例是否串行垃圾回收器: -XX+ UseSerialGC
KV设值类型
公式:-XX:属性key=属性值value
例:-XX:MetaspaceSize=128m
-XX:MaxTenuringThreshold=15 (多少次交换升老年区)

jinfo举例,如何查询当前运行程序的配置
jinfo -flag 配置项 进程编号
jinfo -flags 进程编号 (模糊查询当前进程编号的所有参数)

坑题

在这里插入图片描述

查看初始默认

java -XX:+PrintFlagsInitial
查看修改和更新的内容
java -XX:+PrintFlagsFinal (有:被修改过的)
打印命令行参数
java -XX:+PrintCommandLineFlags -version
在这里插入图片描述

最后一个参数看本次运行使用的垃圾回收器

在这里插入图片描述

基本调优

-Xms 初始大小内存,默认为物理内存1/64,等价于-XX:initialHeapSize
-Xmx 最大分配内存,默认为物理内存1/4,等价于-XX:MaxHeapSIze
-Xss 设置单个线程栈的大小,一般默认为512k-1024k,等价于-XX:ThreadStackSize
-Xmn 设置年轻代大小,一般不用调
-XX:MetaspaceSize 设置元空间大小,元空间的本质和永久代类似,都是对jvm规范中方法区的实现。
不过元空间与永久代之间最大区别在于:元空间并不在虚拟机中,而是使用本地内存。因此,默认情况下,元空间的大小仅受本地内存限制。
-XX:+PringGCDetails 打印垃圾回收日志,如下图
在这里插入图片描述

-XX:SurvivorRatio

在这里插入图片描述
在这里插入图片描述

-XX:NewRatio

在这里插入图片描述

-XX:MaxTenuringThreshold 设置垃圾最大年龄

在这里插入图片描述

强引用

在这里插入图片描述
例:object2 是强引用,不会被垃圾回收
在这里插入图片描述

软引用

在这里插入图片描述
在这里插入图片描述
内存不足:
在这里插入图片描述

弱引用gc后没有引用被回收。

在这里插入图片描述
WeakHashMap key被滞空后对应的map键值对就会被垃圾回收器回收掉
在这里插入图片描述

虚引用

在这里插入图片描述
在这里插入图片描述
类似后置通知的虚引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
StackOverflowError 栈空间被撑爆,最简单的例子是写一个递归方法。方法区在栈
在这里插入图片描述

Java heap space 堆空间被撑爆

在这里插入图片描述
GC overheadLimit exceeded 频繁的GC但是没有什么效果,回收不了多少就会报错。
在这里插入图片描述
在这里插入图片描述

Direct buffer memory

在这里插入图片描述
在这里插入图片描述

unable to create new native thread

在这里插入图片描述
在这里插入图片描述

Metaspace

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值