JVM学习
觉醒的韭菜
这个作者很懒,什么都没留下…
展开
-
JVM学习—Java内存区域与溢出异常
1、为什么要学习java内存区域? 作为一名java程序员在日常的工作中确实很少接触到内存管理的实际操作,因为在虚拟机的自动内存管理机制的帮助下,不再需要我们手动的去管理内存。不过,也正是因为我们将内存管理交给了虚拟机,当出现内存泄漏等方面的问题,如果不了解虚拟机是怎样管理内存的,那排查错误将会是一件非常艰难的工作。另外,要成为一名高级Java程序员,学好Java虚拟机方面的知...原创 2019-06-24 23:38:43 · 85 阅读 · 0 评论 -
JVM学习—虚拟机性能监控与故障处理工具
今天分享一下如何运用一些工具来定位问题和JVM有关的一些问题。 1、性能监控各种命令 1.1、jps jps的作用:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(main()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID。 1.2、jstat jstat作用:用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机的类装载、内存、垃...原创 2019-07-04 23:35:01 · 330 阅读 · 0 评论 -
JVM学习—垃圾收集器与内存分配策略
在学习垃圾收集器与内存分配之前,我们要思考三个问题: 1、哪些内存才需要我们去回收?我们如何判断这些内存可以回收? 2、什么时候回收? 3、如何回收? 下面我们将根据这三个问题去好好研究一下垃圾收集器。 1、对象已死?—判断是否需要被回收 在垃圾回收之前我们要确定哪些对象时还“存活”着,哪些对象已经...原创 2019-06-29 21:26:00 · 117 阅读 · 0 评论 -
JVM学习—虚拟机类加载机制
1、类加载的时机 类从被加载到虚拟机内存到卸载出内存,一共包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。 虚拟机必须进行初始化的四种情况: 1、遇到new、getstatic、putstatic、或invokestatic这4条字节码指令时,如果类没有初始化则需要先进行初始化。比如使用new关键字实例化对象的时候、读取或设置一个类的静态字段(被f...原创 2019-07-11 23:52:42 · 87 阅读 · 0 评论 -
JVM学习—Java内存模型和线程
1、物理机的并发问题 物理机遇到的并发问题与虚拟机中的情况有不少相似之处,首先多任务并发执行不仅仅只靠计算机“计算”就能完成,至少还与内存的交互、读取运算数据、存储运算数据结果等相关。 由于计算机的存储设备和处理器的运算速度有着几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存。基于高速缓存的存储交互很好的解决了处理器和内存的...原创 2019-07-17 23:16:21 · 96 阅读 · 0 评论