[JVM]
jvm
我能在河边钓一整天的鱼
欢迎来到我的酒馆
展开
-
G1垃圾回收器
目录G1是什么G1的原理区域化的垃圾回收回收步骤回收过程参数配置G1和CMS比较SpringBoot结合JVMGCG1是什么Garbage-First收集器,是一款面向服务端应用的收集器,应用在多处理器和大容量内存环境中,实现了高吞吐量的同时尽可能满足垃圾收集暂停时间的要求。具有以下特征:像CMS收集器一样,能与应用程序并发执行 整理空闲空间更快 需要更多时间来预测GC停顿时间 不希望牺牲大量的吞吐量性能 不需要更大的Java Heap ..原创 2020-08-06 18:53:12 · 540 阅读 · 0 评论 -
JVM的垃圾收集器
目录垃圾回收算法和垃圾回收器的关系四种主要的垃圾收集器SerialParallelCMS(Concurrent Mark Sweep)G1如何查看默认的垃圾回收器JVM的七大垃圾回收器新生代的垃圾收集器串行GC(Serial Copying)并行GC(ParNew)双并行回收GC(Parallel Scavenge)老年代的垃圾收集器串行GC(Serial Old)并行GC(Parallel Old)并发标记清除GC(CMS)垃圾收集器如何原创 2020-08-06 17:43:51 · 625 阅读 · 0 评论 -
JVM线上常见问题
目录StackoverFlowErrorjava.lang.OutOfMemoryError:java heap spacejava.lang.OutOfMemoryError:GC overhead limit exceeededjava.lang.OutOfMemoryError:Direct buffer memoryjava.lang.OutOfMemoryError:unable to create new native threadjava.lang.OutOfMemo.原创 2020-08-06 10:16:54 · 331 阅读 · 0 评论 -
强、软、弱、虚引用与垃圾回收
目录什么是引用引用的结构图强引用软引用弱引用虚引用引用队列 ReferenceQueue什么是引用我们在java中经常会对类进行实例化Person p = new Person等号左边是对象的“引用”,存储在栈中。等号右边是实例化的对象,存储在堆中。这种引用也被称为强引用。引用的结构图引用类分强软弱虚以及引用队列,它们都继承于Object类,结构图如下强引用在Java中最常见的就...原创 2020-08-06 08:50:19 · 432 阅读 · 3 评论 -
什么是GC Roots——垃圾回收的可达性分析
为了解决引用计数法的循环引用个问题,Java使用了可达性分析的方法:所谓 GC Roots 或者说 Tracing Roots的“根集合” 就是一组必须活跃的引用基本思路就是通过一系列名为 GC Roots的对象作为起始点,从这个被称为GC Roots的对象开始向下搜索,如果一个对象到GC Roots没有任何引用链相连,则说明此对象不可用。也即给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历到的(可到达的)对象就被判定为存活,没有被遍历到的对象就被判定为死亡哪...原创 2020-08-04 21:14:54 · 1045 阅读 · 0 评论 -
GC垃圾回收算法
GC的概念垃圾回收机制是一种自动的回收机制,它回收的内容位于方法区和堆内存中我们知道堆中包括新生代、幸存区(from,to)、老年代、元空间。GC回收大部分都是新生代。GC分为轻GC(普通的GC)、重GC(全局GC)GC的算法引用计数法它会给堆中的每个对象技术。最少使用次数的对象会先被GC回收复制算法标记压缩清除法...原创 2020-05-24 09:30:10 · 270 阅读 · 0 评论 -
使用Jprofiler工具进行堆调优
堆的调优我们先写个启动类看看默认情况下堆分配的空间是多少package com.lt;public class Demo01 { public static void main(String[] args) { long max = Runtime.getRuntime().maxMemory(); long total = Runtime.getRuntime().totalMemory(); System.ou...原创 2020-05-23 17:38:45 · 873 阅读 · 0 评论 -
栈和堆的基本概念
栈栈是一种数据结构,具有先进先出的特点。栈内存主管程序的运行,生命周期和线程同步。线程结束,栈内存也就释放,因此栈不存在垃圾回收问题8大基本类型+对象引用+实例方法运行在栈中栈满了:StackOverFlowError堆一个JVM只有一个堆,堆内存的大小可以调节堆内存中细分三个区域:新生区(伊甸园区)、养老区、永久区,GC垃圾回收主要在伊甸园区和养老区所有引用类型的真实对象保存在堆中,此外常量池的地址也保存在堆中堆满了:OutO...原创 2020-05-23 15:10:02 · 393 阅读 · 0 评论 -
本地方法栈、程序计数器、方法区
本地方法栈(Native Method Stack)本地方法(native method):凡是带了native关键字的,说明java的作用范围达不到了回去调用底层C语言的库本地方法区:将带native关键字的本地方法进来,在执行引擎(Excutrion Engine)执行的时候加载本地库(Native Libraies)目前很少用JNI进行通信,更官方的使用Socket、WebService等等程序计数器(Program Counter Register)...原创 2020-05-23 10:52:26 · 428 阅读 · 0 评论 -
沙箱安全机制
目录什么是沙箱安全机制沙箱安全机制的发展史沙箱的组成什么是沙箱安全机制Java安全模型的核心就是Java沙箱(sandbox)。沙箱是一个限制程序运行的环境。沙箱机制就是将Java代码限定在虚拟机特定的运行范围中,并且严格限制代码对本地系统资源的访问,通过这样的措施保证对代码的有效隔离,防止对本地系统造成的破坏,沙箱主要限制系统资源访问(cpu、内存、文件系统、网络)沙箱安全机制的发展史在Java中将执行程序分为本地代码和远程代码两种。本地代...原创 2020-05-23 10:28:25 · 666 阅读 · 0 评论 -
类加载器&双亲委派机制
目录类加载器双亲委派机制什么是双亲委派机制类加载器执行的流程举例类加载器上图打印了三个类加载器。第一个是应用程序加载器第二个是扩展类加载器第三个是启动类(根)类加载器双亲委派机制什么是双亲委派机制双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。类加载器执行的...原创 2020-05-23 09:48:04 · 274 阅读 · 0 评论 -
JVM的体系结构
JVM的体系结构Java文件最终在JVM中执行,而有些特殊操作需要JVM调用操作系统提供的接口和方法简略版详细版原创 2020-05-23 08:37:59 · 201 阅读 · 0 评论