
JVM
文章平均质量分 96
JVM相关
挥之以墨
一个半路出家的加瓦攻城狮,DevOps玩家,擅长分布式系统设计,偶尔也整一下前端,搬砖经验丰富,平时喜欢随便学学,随便写写
展开
-
【JVM】(三)垃圾与垃圾回收(标记算法、回收算法、回收器)
文章目录1.如何确定一个对象是垃圾1.如何确定一个对象是垃圾在上一篇《【JVM】(二)运行时数据区及内存模型》说到了,对象是在不断的生成并在堆中分配内存空间,但是堆内存空间是有限的,于是我们需要对堆中不再使用的对象进行回收,以便于回收后的空间可以分配更多的对象。这种不再使用的对象,就叫做垃圾。确认一个对象是不是垃圾,主要有两种方式,...原创 2020-11-27 16:28:35 · 532 阅读 · 0 评论 -
【JVM】(二)运行时数据区及内存模型
上面提到的Minor GC存在风险的意思是,虽然验证了大于历次晋升到老年代的对象的平均大小,但是每次晋升的对象总大小基本都是不一样的,可能还是会出现本次晋升的对象大于了当前老年代最大连续内存空间的情况,这样还是会进行Full GC。为了解决这个问题,将新生代划分成了Eden区和Survivor区,每次Minor GC后,将未回收的对象复制到Survivor区,然后将Eden区完全清空,这样就不存在内存间隙的问题,让Eden能够分配更多的对象。如果此时新生代的内存空间是连续的,就可以直接进行分配。原创 2020-11-16 10:56:54 · 513 阅读 · 2 评论 -
【JVM】(一)类的加载过程
文章目录1.Write Once,Run Anywhere2.Java文件的编译3.类加载机制3.1.装载3.2.链接3.2.1.验证3.2.2.准备、解析3.3.初始化3.4.类加载小结4.类加载器(ClassLoader)4.1.类加载器的分类1.Write Once,Run AnywhereWrite Once,Run Anywhere,每一位Javaer都知道这一句由SUN公司喊出的口号。我们编写同样的一份代码,可以在不同的操作系统中运行而不需要做更多额外的操作,而Java这样的特性,正式通过底原创 2020-11-11 11:06:19 · 443 阅读 · 2 评论