2 abcLai1111

尚未进行身份认证

暂无相关简介

等级
TA的排名 17w+

JVM——思维导图

2019-11-05 14:24:17

JVM(4)——垃圾回收算法

三垃圾回收算法1哪些变量引用的对象是不能回收的?​ JVM中使用了一种可达性分析算法来判定哪些对象是可以被回收的,哪些对象是不可以被回收的。​ 这个算法的意思,就是说对每个对象,都分析一下有谁在引用他,然后一层一层往上去判断,看是否有一个GC Roots。2哪些可以作为GC Roots的对象虚拟机(栈帧中的本地变量表)中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象...

2019-11-05 11:53:56

模拟出JVM内存溢出的场景

1.模拟出JVM Metaspace内存溢出的场景体验一下Metaspace内存溢出根本原因:1.就是Metaspace内存设置太早 2.就是代码里面有大量生成了动态类。一旦Metaspace区域满了,就会触发Full GC连带着回收Metaspace中的类,但是此时大量的类是不能被回收的。不能放下任何一个类,此时必然会触发Metaspace区域的内存溢出,导致JVM也是崩溃掉,无法继续运行了...

2019-11-03 01:50:45

JVM(7)——OOM内存溢出

1.什么是内存溢出?在哪些区域会发生内存溢出内存溢出指程序申请内存时,没有足够的内存供申请者使用第一块Metaspace区域里可能发生OOM第二块可能发生OOM的区域,就是每个线程的虚拟机栈内存。第三块可能发生内存溢出的区域,就是堆内存空间!2.Metaspace区域是如何触发内存溢出的?如下两个参数就是用来设置Metaspace区域大小的:-XX:MetaspaceSize=512...

2019-11-03 01:06:48

JVM(8)——GC的影响(总结)

1.基于JVM运行的系统最怕什么?基于JVM运行的系统最害怕的问题:**系统卡顿问题!**就是每次一旦年轻代塞满之后,在进行垃圾回收的时候,这个期间都必须停止系统程序的运行!2.年轻代gc到底多久一次对系统影响不大?通常来说是不大的,假如说你的系统运行着,然后每隔几分钟或者几十分钟执行一次新生代gc,系统卡顿几十毫秒,就这期间的请求会卡顿几十毫秒,几乎用户都是无感知的,所以新生代gc一般基本...

2019-11-02 22:06:07

使用MAT分析内存快照

1.准备一段示范用的代码publicstaticvoidmain(String[]args)throwsInterruptedException{List<Data>list=newArrayList<>();for(inti=0;i<10000;i++){li...

2019-11-02 21:29:18

JVM生产调优实战——项目实战设置自己的项目jvm大小?

如何设置自己的项目jvm大小?假设每天100万个支付订单,那么一般用户交易行为都会发生在每天的高峰期,比如中午或者晚上。1.每秒多少笔交易?平均每秒多少笔交易:100w/(24*60*60)约等于12,就是平均每秒12笔交易。按照28比例,高峰期为中午12-13点,下午7-8点左右平均每秒多少笔交易:100w/(2*60*60)约等于12,就是平均每秒100多笔交易。假设我们的支付系统...

2019-11-01 15:10:43

JVM——分代模型(2)

13.JVM分代模型:年轻代和老年代大部分对象都是存活周期极短的,少数对象是长期存活的年轻代:创建和使用完之后立马就要回收的对象放在里面老年代:创建之后需要一直长期存在的对象放在里面14.什么是永久代?JVM里的永久代其实就是我们之前说的方法区,1.8叫元空间。15.方法区内会不会进行垃圾回收方法区里的类会被回收。前提有三个条件:首先该类的所有实例对象都已经从Java堆内存里被回...

2019-11-01 15:08:32

JVM(3)——内存相关的核心参数

22.JVM内存相关的几个核心参数图解[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jYnS8gBR-1572592012826)(/Users/laiyanxin/Library/Application Support/typora-user-images/image-20191027223359622.png)]-Xms:Java堆内存的大小-Xmx:J...

2019-11-01 15:07:08

JVM入门(1)

文章目录1.JVM是什么2.JVM跟我们平时运行在机器上的系统之间是什么关系3.类加载器的概念4.字节码执行引擎的概念5.JVM在什么情况下会加载一个类?6.类加载的过程6.1**验证阶段**6.2**准备阶段**6.3**解析阶段**6.4核心阶段:初始化7.类加载器和双亲委派机制7.1类加载器7.2双亲委派机制8.如何对“.class”文件处理保证不被人拿到以后反编译获取公司源代码?9.**什...

2019-11-01 15:05:55

JVM(5)——垃圾回收器

四 垃圾回收器1JVM的年轻代垃圾回收器ParNew是如何工作的?最常用的新生代垃圾回收器:ParNew新生代的ParNew垃圾回收器主打的就是多线程垃圾回收机制,另外一种Serial垃圾回收器主打的是单线程垃圾回收,他们俩都是回收新生代的,唯一的区别就是单线程和多线程的区别,但是垃圾回收算法是完全一样的。ParNew垃圾回收器如果一旦在合适的时机执行Minor GC的时候,就会把系统程序...

2019-11-01 15:04:15

hashmap中扩容数组迁移实现原理?为什么初始化大小要2的幂次方

1.为什么初始化大小要2的幂次方如果初始化大小不是2的幂次方,就会导致hash & (n-1)的时候,hash的值会被干扰到,

2019-10-23 15:10:29

JVM(6)—— G1垃圾回收器

1. G1垃圾回收器的工作原理ParNew + CMS的组合,无论是新生代垃圾回收,还是老年代垃圾回收,都会或多或少产生“Stop the World”现象,对系统的运行是有一定影响的。 G1可以做到让你来设定垃圾回收对系统的影响,他自己通过把Java堆内存拆分为多个大小相等的Region,以及追踪每个Region中可以回收的对象大小和预估时间,最后在垃圾回收的时候,尽量把垃圾回收对系统造成的影...

2019-10-30 17:56:22

JVM GC空间担保机制原理流程图

2019-10-29 14:11:12

面向对象——思维导图

2019-10-23 16:26:14

hashMap总结

1.为什么hashMap的大小为2^n?hashMap大小如果不是为2^n,在hash&(n-1)的时候就会干扰到值,假设初始化大小为7,则hash& 6在运算的时候,6的二进制是0110如图,大小如果不是为2^n,做与运算的时候就会干扰hash得值。如果是二的幂次方,结果为0111,能保证数据不被干扰到。2.求下标位置i = (n - 1) & hash​ ...

2019-10-23 15:43:56

学习java基础——面向对象

文章目录一.类对对象1.1面向对象与面向过程1.2面向对象中两个重要的概念1.3对象的创建与对象的内存解析1.4 匿名对象1.5.理解"万事万物皆对象"二、类的结构之一:属性2.1相同点:2.2 不同点:2.2.1在类中声明的位置的不同2.2.2 关于权限修饰符的不同2.2.3 默认初始化值的情况:2.2.4 在内存中加载的位置:三、类的结构之二:方法3.1 方法的声明3.3 方法的重载的概...

2019-10-21 17:57:47

深度解读 Java 线程池设计思想及源码实现

深度解读 java 线程池设计思想及源码实现本文转载https://www.javadoop.com/post/java-thread-pool创建时间: 2017-09-05 00:00:00我相信大家都看过很多的关于线程池的文章,基本上也是面试的时候必问的,如果你在看过很多文章以后,还是一知半解的,那希望这篇文章能让你真正的掌握好 Java 线程池。本文一大重点是源码解析,同时会有少量...

2019-09-30 17:24:56

阻塞队列总结

阻塞队列总结:1.LinkedBlockingQueueLinkedBlockingQueue 的内部是通过单向链表实现的,使用头、尾节点来进行入队和出队操作,也就是入队操作都是对尾节点进行操作,出队操作都是对头节点进行操作 。对头、尾节点的操作分别使用了单独的独占锁从而保证了原子性,所以出队和入队操作是可以同时进行的 。 另外对头 、 尾节点的独占锁都配备了一个条件队列,用来存放被阻塞的线程...

2019-09-30 14:11:03

LinkedBlockingQueue

1.LinkedBlockingQueue是什么 ?​ LinkedBlockingQueue 也是使用单向链表实现的,可以当做无界队列也可以当做有界队列来使用。可以通过构造函数指定界限,,LinkedBlockingQueue默认是有界限的,默认队列容量为Integer.MAX_VALUE,用户也可以自己指定容量,所以从一定程 度上可以说 LinkedBlockingQueue 是有界阻塞队列...

2019-09-30 00:30:51

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。