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