JVM
头发还长的程序员
这个作者很懒,什么都没留下…
展开
-
JVM(八)JVM调优
一、什么是调优?1、根据需求进行JVM规划和预调优,如堆大小等。2、优化JVM运行环境(慢,卡顿)。3、解决JVM运行过程中出现的各种问题(OOM等)。日志必须设置多个。可以多个日志文件遍历着使用,也可以一天产生一个日志文件。二、参数说明输入java可以查看参数列表-开头的是标准参数,什么版本都能用。-X开头的是非标准参数输入java -X可...原创 2020-04-24 00:14:14 · 277 阅读 · 0 评论 -
JVM(七)垃圾收集器
一、简介上一篇博客中讲了垃圾回收的三种算法,这三种算法的不同组合也构成了10种垃圾收集器。前六种垃圾回收器需要两两组合(图中虚线相连的组合),是分代垃圾收集器,堆内存中逻辑分区,新生代中垃圾需要回收的个数多,采用复制算法,效率高;老年代中垃圾需要回收的个数少,采用标记整理算法。...原创 2020-04-24 00:10:41 · 295 阅读 · 0 评论 -
JVM(六)分代收集与分区收集
一、分代收集根据对象存活周期的不同将内存划分为几块,如新生代、老年代、永久代,这样就可以根据各年代特点分别采用最适当的GC算法。新生代采用复制算法在新生代每次垃圾收集都能发现大批对象已死,只有少量存活。因此选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。新生代GC较频繁,但GC效率高。老年代采用标记整理算法老年代对象存活率高、没有额外空间对它进行分配担...原创 2020-04-17 15:35:14 · 512 阅读 · 0 评论 -
JVM(五)JAVA四种引用类型
一、强引用在java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java内存泄露的主要原因之一。二、软引用软引用需要用SoftReference类来实现,对于只有软引用的对象来说,当系统内存足够时它不...原创 2020-04-17 14:56:05 · 131 阅读 · 0 评论 -
JVM(四)垃圾回收与算法
一、简介二、如何确定垃圾2.1 引用计数法在java中,引用和对象是关联的。如果要操作对象则必须用引用进行。因此,一个简单的办法是通过引用计数来判断一个对象是否可以回收。在对象头中分配一个空间来保存该对象被引用的次数,如果该对象被引用了,则加1,如果该引用被取消了,则减1,当该对象的引用为0时,就被当成垃圾回收了。垃圾收集的开销被分摊到整个应用程序的运...原创 2020-04-17 10:15:15 · 106 阅读 · 0 评论 -
JVM(三)运行时内存
一、运行时内存Java堆从GC的角度还可以细分为:新生代(Eden区、From Servivor区和To Servivor区)和老年代。二、新生代用来存放新生的对象。一般占堆的1/3空间。由于频繁创建对象,所以新生代会频繁触发MinorGC(Minor,轻微的)进行垃圾回收。新生代又分为Eden区、From Servivor区和To Servivor区。2...原创 2020-04-08 12:09:45 · 78 阅读 · 0 评论 -
JVM(二)内存区域
一、JVM内存区域JVM内存区域主要分为:线程私有区域:程序计数器、虚拟机栈、本地方法区 线程共享区域:Java堆、方法区 直接内存线程私有区域的生命周期与线程相同,随用户线程的启动/结束,而创建/销毁;在HotSpot JVM内,每个线程都与操作系统的本地线程直接映射,因此这部分内存区域的存/否跟随本地线程的生/死对应。线程共享区域随虚拟机的启动/关闭而创建/销毁。...原创 2020-04-07 17:48:34 · 102 阅读 · 0 评论 -
JVM(一)概述
一、基本概念JVM是可运行Java代码的虚拟机,由字节码指令集、寄存器、栈、垃圾回收、堆、存储方法域等构成。JVM是运行在操作系统之上的,与硬件没有直接的交互。JVM总的来说可以说是一种标准规范,有多种实现版本,HotSpot是虚拟机的一种实现,顾明思议是基于热点代码探测的,有JIT即时编译功能,能提供更高质量的本地代码。由sun公司开发,是sun jdk和open jdk中自带的虚拟...原创 2020-04-07 17:04:07 · 158 阅读 · 0 评论