Java虚拟机
文章平均质量分 51
Java内存区域、GC、垃圾收集器等
SenlAAA
这个作者很懒,什么都没留下…
展开
-
JVM----GC(下)
圾收集算法有:标记-清除算法、复制算法、标记-整理算法、分代收集算法标记-清除算法首先标记要回收的对象,标记完成后回收所有被标记的对象,会产生大量不连续的内存碎片复制算法将内存划分为两个相等块,每次只用其中一块。把存活的对象复制到另一块内存中,然后把这块内存清理掉,内存的可用空间减半。标记-整理算法这是标记-清除算法的升级版。在完成标记阶段后,让存活对象向着一端移动,进行整理。分代收集算法首先根据对象存活周期将分为新生代、老年代。在新生代中选择复制算法,每次垃圾收集有大量对象死去,少量存活原创 2021-01-06 23:25:53 · 202 阅读 · 0 评论 -
JVM----GC(上)
Java堆分为:新生代和老年代。新生代:被分为Eden和Survivor区,Survivor由FromSpace和ToSpace组成,8:1:1Eden空间不足的时候,会把存活的对象转移到Survivor中。对象从新生代消失的过程称为minor GC老年代:用于存放新生代中经过多次垃圾回收仍然存活的对象。从老年代中消失的过程,称为major GC或full GC。新生代: Eden区、s0区、s1区。对象先在 Eden 区分配,在⼀次新⽣代垃圾回收后,若对象还存活,则进⼊ s0 或s1,对象原创 2021-01-06 23:25:22 · 840 阅读 · 0 评论 -
JVM----强引⽤、软引⽤、弱引用、虚引用
强引用:如果⼀个对象具有强引用,那垃圾收集器绝不会回收它,当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,终止软引⽤软引用:如果内存空间足够,就不会回收,内存空间不⾜,就会回收这些对象的内存。可实现缓存的功能弱引用弱引用可以和⼀个引用队列联合使用,如果弱引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加⼊到引用队列中。在垃圾回收器线程扫描内存区域时,⼀旦发现了只有弱引用的对象,不管当前内存空间是否充足都会回收它的内存。虚引用在任何时候都可能被垃圾回收,主要用来跟原创 2021-01-06 22:36:32 · 324 阅读 · 0 评论 -
第4天
第4章 lua、Canal实现广告缓存学习目标Lua介绍Lua语法 输出、变量定义、数据类型、流程控制(if..)、循环操作、函数、表(数组)、模块OpenResty介绍(理解配置)封装了Nginx,并且提供了Lua扩展,大大提升了Nginx对并发处理的能,10K-1000KLua->广告缓存操作广告缓存载入与读取Nginx讲解限流操作:漏斗限流原理 1.控制速率 2.并发量控制Canal讲解实现数据同步操作->MySQLCanal实现原创 2021-01-10 23:44:08 · 245 阅读 · 0 评论 -
JVM----Java内存区域
JVM内存区域:线程共享:堆和⽅法区 (JDK1.8之后改为元空间),线程私有:程序计数器、虚拟机栈、本地⽅法栈JDK1.6:JDK1.8:程序计数器的作⽤:通过改变程序计数器来依次读取指令,从⽽实现代码的流程控制记录当前线程执⾏的位置,多线程情况下,线程切换后能恢复到正确的位置(这个也是线程私有的原因)虚拟机栈:每个 Java ⽅法执⾏时会创建⼀个栈帧⽤于存储局部变量表、操作数栈、动态链接等。从⽅法调⽤到执⾏完成的过程,对应着⼀个栈帧在 Java 虚拟机栈中的⼊栈和出栈。本地原创 2021-01-06 21:21:01 · 166 阅读 · 0 评论