Jvm
文章平均质量分 90
NameExist
温故而知新!
展开
-
JConsole:Java监视与管理控制台
文章目录JConsole:Java监视与管理控制台JConsole启动内存监控线程监控线程死循环线程等待线程死锁类监控VM概要JConsole:Java监视与管理控制台JConsole(Java Monitoring and Management Console)是一款基于JMX(Java Manage-mentExtensions)的可视化监视、管理工具,用于连接正在运行的Jvm,可以对虚拟机内存、线程、类加载情况、CPU占用率等进行监控。JConsole启动Jsonsole位置在${JA原创 2021-05-18 21:03:46 · 495 阅读 · 0 评论 -
Jvm常用参数
Java获取堆内存使用情况public static void main(String[] args) { //已经分配的内存大小 默认单位byte,转为mb 1 * 1024 * 1024 b = 1 m long totalMemory = Runtime.getRuntime().totalMemory() / (1024 * 1024); //最大内存 long maxMemory = Runtime.getRuntime().maxMemory() / (1024原创 2021-05-12 23:01:35 · 107 阅读 · 0 评论 -
Jvm基础故障处理工具
文章目录基础故障处理工具jps:虚拟机进程状况工具jstat:虚拟机统计信息监视工具jinfo:Java配置信息工具jmap:Java内存映像工具jhat:虚拟机堆转储快照分析工具jstack:Java堆栈跟踪工具基础故障处理工具jps:虚拟机进程状况工具jps(JVM Process Status Pool)类似Linux下ps命令:可以列出正在运行的虚拟机进程,并显示虚拟机执行的主类名称以及这些进程的本地虚拟机唯一ID(LVMID,Local)(本地虚拟机的ID与进程ID一致)命令格式jp原创 2021-05-12 22:59:05 · 355 阅读 · 7 评论 -
Java内存模型JMM,虚拟机线程实现
文章目录主内存与工作内存内存间交互操作对于volatile型变量的特殊规则线程的实现Java线程的实现Java线程调度Java锁优化自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明 笔记记录主内存与工作内存Java内存模型规定了所有的变量都存储在主内存(Main Memory)中(主内存物理上只是虚拟机内存的一部分)。每条线程还有自己的工作内存(Working Memory),线程的工作内存保存了该线程使用的变量的主内存副本,线程对变原创 2021-05-08 22:28:39 · 126 阅读 · 0 评论 -
对象内存分配
HotSpot虚拟机内存分配对象内存分配对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC。触发Minor GC/** * 1MB = 1024 * 1024 byte */private static final int _1MB = 1024 * 1024;/** * 堆内存设置20m,新生代设为10m,eden和一个sur比例为8:1 * JVM参数:-Xmx20m -Xms20m -Xmn.原创 2021-04-27 22:04:09 · 130 阅读 · 0 评论 -
垃圾收集器
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)文章目录垃圾收集器Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Paralle Old收集器CMS收集器Garbage First收集器垃圾收集器HotSpot虚拟机的垃圾收集器JDK 7 Update 4之后、JDK 11正式发布之前,OracleJDK中的HotSpot虚拟机所包含的全部可用的垃圾收集器。两个收集器之间存在连线,就说明它们可以搭配使用。新生代垃圾收集器:.原创 2021-04-25 21:24:35 · 1577 阅读 · 0 评论 -
对象存活判定和垃圾收集算法
对象存活判定算法引用计数算法在对象中添加一个引用计数器,每当有一个地方引用它时,计时器值加一;当引用失效时,计数器就减一;任何时刻计数器为零的对象就是不可能再被使用的。Java虚拟机不是通过引用计数算法来判断对象是否存活。可达性分析法Java虚拟机通过可达性分析算法来判定对象是否存活。可达性分析算法基本思路是通过一系列称为GC ROOTS的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程锁走过的路径称为引用链(Reference Chain),如果某个对象到GC ROOTS间没原创 2021-04-21 16:29:57 · 80 阅读 · 0 评论 -
Jvm运行时数据区
Java与C++之间有一堵由内存动态分配和垃圾收集技术围成的高墙,墙外的人想进去,墙里面的人却想出来。运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域:程序计数器、虚拟机栈、本地方法栈、堆、方法区。程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的.原创 2021-04-05 21:48:59 · 373 阅读 · 0 评论 -
类加载过程与类加载器
代码编译的结果从本地机器码变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步类加载的时机一个类型从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)七个阶段。其中验证、准备、解析三个部分统称为连接(Linking)加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的.原创 2021-03-27 20:13:37 · 347 阅读 · 0 评论