![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 91
fxkcsdn
学习要有一定的广度才能触发深度学习的兴趣,有兴趣再去深度学习,否则达不到真正的深度
展开
-
【JVM总结】判断对象是生存还是死亡
目录 1.引用计数算法2.根搜索算法3.java四种引用类型4.生存还是死亡?5.回收方法区1.引用计数算法定义:给对象添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用的。引用计数法的实现简单,判定效率也很高,在大部分情况下他都是一个不错的算法。但是Java语言没有选用引用计...原创 2018-08-03 22:53:54 · 300 阅读 · 0 评论 -
【JVM总结】垃圾收集算法
目录 1.标记-清除算法2.复制算法3.标记-整理算法4.分代收集算法1.标记-清除算法最基础的收集算法是“标记-清除”算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象,他的标记过程(两次标记)其实在上篇文章已经基本介绍过了。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并...原创 2018-08-04 10:47:45 · 128 阅读 · 0 评论 -
【JVM总结】垃圾收集器
目录 引言1.Serial收集器2.ParNew收集器3.Parallel Scavenge收集器4.Serial Old收集器5.Parallel Old 收集器6.CMS收集器7.G1收集器引言如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。下图是HotSpot jvm1.6所有垃圾收集器:如果两个收集器之间存在连线,就说明他...原创 2018-08-04 22:38:45 · 145 阅读 · 0 评论 -
【JVM总结】内存分配与回收策略
目录 引言Minor GC和Full GC的区别1.对象优先在Eden分配2.大对象直接进入老年代3.长期存活的对象将进入老年代4.动态对象年龄判定5.空间分配担保引言Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配,从大方向讲就是在堆上分配,对象主要分配在新生代的Eden区...原创 2018-08-05 23:09:59 · 2323 阅读 · 0 评论 -
【JVM总结】类的加载、连接和初始化
什么是类的加载jvm将class文读取到内存中,经过对class文件的校验、转换解析、初始化最终在jvm的heap和方法区分配内存形成可以被jvm直接使用的类型的过程。类的生命周期7个阶段依次为:Loading Verification Preparation Resolution Initialization Using Unloading加载 验证 准备 初始化和卸载 的...原创 2018-08-07 19:33:38 · 2025 阅读 · 3 评论 -
【JVM总结】JVM运行时数据区域
目录线程独占区 程序计数器 java虚拟机栈 本地方法栈线程共享区java堆方法区直接内存(Direct Memory)java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而启动,有些区域是依赖于用户线程的启动和结束而建立和销毁,jvm运行时数...原创 2018-08-03 11:31:00 · 167 阅读 · 0 评论 -
【java基础】Java动态绑定机制的内幕
在Java方法调用的过程中,JVM是如何知道调用的是哪个类的方法源代码? 这里面到底有什么内幕呢? 这篇文章我们就将揭露JVM方法调用的静态(static binding) 和动态绑定机制(auto binding) 。★ 静态绑定机制//被调用的类package hr.test;class Father{ public static void f1(){ ...转载 2018-08-16 09:44:58 · 138 阅读 · 0 评论 -
【java基础】java方法调用之动态调用多态(重写override)的实现原理——方法表
结论基于基类的调用和基于接口的调用,从性能上来讲,基于基类的调用性能更高 。因为invokevirtual是基于偏移量的方式来查找方法的,而invokeinterface是基于搜索的。概述多态是面向对象程序设计的重要特性。多态允许基类的引用指向派生类的对象,而在具体访问时实现方法的动态绑定。java对方法动态绑定的实现方法主要基于方法表,但是这里分两种调用方式invokevirtua...转载 2018-08-16 13:37:03 · 381 阅读 · 0 评论