JVM
晴天小哥哥
追求卓越, 成功就会在不经意间追上你
展开
-
深入理解JVM(六) GC优化(垃圾处理器优化)
优化内存被使用了之后,难免会有不够用或者达到设定值的时候,就需要对内存空间进行垃圾回收。1.垃圾收集发生的时机GC是由JVM自动完成的,根据JVM系统环境而定,所以时机是不确定的。 当然,我们可以手动进行垃圾回收,比如调用System.gc()方法通知JVM进行一次垃圾回收,但是具体什么时刻运行也无法控制。也就是说System.gc()只是通知要回收,什么时候回收由JVM决定。 ...原创 2019-12-27 10:36:57 · 1308 阅读 · 0 评论 -
深入理解JVM(五) JVM常用工具(jconsole, jvisualvm,Arthas,MAT)
1.jconsole在命令行中,输入jconsole命令,即可直接打开jconsole.如图所示:里面有两块内容,一个是从本地进程中选择java进程进行监控,第二个就是远程监控.我就以本地的一个死锁的test进程来讲解,点击你所需要监控的进程,便可以进入监控页面:首页是概况其他页面都有其详细信息,大家可以自行研究内存中可以看堆和非堆内存的详细信息,...原创 2019-12-26 17:01:23 · 2466 阅读 · 0 评论 -
JVM之远程监控springboot程序
1.准备好springboot的jar包2.编写启动脚本.这是改动之前的脚本:jarname='eureka-server'pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`echo $pidif [ "$jarname" != "" ]then kill -9 $pidfikill -...原创 2019-12-26 16:07:52 · 1731 阅读 · 0 评论 -
深入理解JVM(四) JVM参数以及命令
1.JVM参数1.1标准参数-version-help-server-cp1.2 -X参数-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式,JVM自己来决定1.3 -XX参数使用的最多的参数类型, 非标准化参数,相对不稳定,主要用于JVM调优和Debuga.Boolean类型格式:-XX...原创 2019-12-26 09:05:03 · 536 阅读 · 0 评论 -
Java finalize()方法总结、GC执行finalize()的过程
1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的finalize的调用具有不确定性不建议用finalize方法完成“非内存资源”的清理工作,但建议用于:...转载 2018-03-29 16:20:50 · 750 阅读 · 0 评论 -
深入理解JVM(二) Java内存区域详解
目录1 概述2 运行时数据区域2.1 程序计数器2.2 Java虚拟机栈(VM Stack)2.3本地方法栈2.4 堆2.5 方法区2.6 运行时常量池2.7直接内存3 HotSpot虚拟机对象探秘3.1 对象的创建3.2 对象的内存布局3.3对象的访问定位1 概述对于Java程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C...原创 2019-01-02 17:07:05 · 233 阅读 · 0 评论 -
深入理解JVM(三)垃圾回收
写在前面:如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 垃圾收集有哪些算法,各自的特点? HotSpot为什么要分为新生代和老年代? 常见的垃圾回收器有那些? 介绍一下CMS,G1收集器。 Minor Gc和Full GC 有什么不同呢?1 概述首先所需要考虑: 哪些垃圾...原创 2019-01-02 17:34:52 · 221 阅读 · 0 评论 -
深入理解JVM(一)虚拟机类加载机制
写在前面简单说说类加载过程,里面执行了哪些操作? 对类加载器有了解吗? 什么是双亲委派模型? 双亲委派模型的工作过程以及使用它的好处。前言:代码编译的结果从本地转换为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。目录写在前面前言:1 概述1.1 虚拟机类加载机制的概念1.2 Java语言的动态加载和动态连接2 类加载时机2.1 初始化过程...原创 2019-01-03 14:32:38 · 276 阅读 · 0 评论