加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

JVM很难?可能你看完这篇文章就够了

发布时间:2019-07-10 22:35:14 所属栏目:站长百科 来源:Java架构人生
导读:观念 假造机:指以软件的方法模仿具有完备硬件体系成果、运行在一个完全断绝情形中的完备计较机体系 ,是物理机的软件实现。常用的假造机有VMWare,Visual Box,Java Virtual Machine(Java假造机,简称JVM)。 Java假造机阵营:Sun HotSpot VM、BEA JRockit
副问题[/!--empirenews.page--]

 观念

假造机:指以软件的方法模仿具有完备硬件体系成果、运行在一个完全断绝情形中的完备计较机体系 ,是物理机的软件实现。常用的假造机有VMWare,Visual Box,Java Virtual Machine(Java假造机,简称JVM)。

JVM很难?可能你看完这篇文章就够了

Java假造机阵营:Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、Azul VM、Apache Harmony、Google Dalvik VM、Microsoft JVM…

启动流程

JVM很难?可能你看完这篇文章就够了

根基架构

JVM很难?可能你看完这篇文章就够了

Java运行时编译源码(.java)成字节码,由jre运行。jre由java假造机(jvm)实现。Jvm说明字节码,后表明并执行。

JVM很难?可能你看完这篇文章就够了

JVM由三个首要的子体系组成:

  • 1.类加载器子体系
  • 2.运行时数据区(内存)
  • 3.执行引擎

垃圾网络(GC:Garbage Collection)

1.怎样辨认垃圾,鉴定工具是否可被接纳?

  • 引用计数法:给每个工具添加一个计数器,当有处所引用该工具时计数器加1,当引用失效时计数器减1。用工具计数器是否为0来判定工具是否可被接纳。弱点:无法办理轮回引用的题目
  • 根搜刮算法:也称可达性说明法,通过“GC ROOTs”的工具作为搜刮起始点,通过引用向下搜刮,所走过的路径称为引用链。通过工具是否有达到引用链的路径来判定工具是否可被接纳(可作为GC ROOTs的工具:假造机栈中引用的工具,要领区中类静态属性引用的工具,要领区中常量引用的工具,当处所法栈中JNI引用的工具)

2.Java 中的堆是 GC 网络垃圾的首要地区,GC 分为两种:Minor GC、Full GC ( 或称为 Major GC )。

  • Minor GC:新生代(Young Gen)空间不敷时触发网络,因为Java 中的大部门工具凡是不需持久存活,新生代是GC网络频仍地区,以是回收复制算法。
  • Full GC:晚年月(Old Gen )空间不敷或元空间到达高水位线执行网络举措,因为存放大工具及持久存活下的工具,占用内存空间大,接纳服从低,以是回收标志-破除算法。

GC算法

凭证接纳计策分别为:标志-破除算法,标志-清算算法,复制算法。

1.标志-破除算法:分为两阶段“标志”和“破除”。起首标志出哪些工具可被接纳,在标志完成之后同一接纳全部被标志的工具所占用的内存空间。不敷之处:1.无法处理赏罚轮回引用的题目2.服从不高3.发生大量内存碎片(ps:空间碎片太多也许会导致往后在分派大工具的时辰而无法申请到足够的持续内存空间,导致提前触发新一轮gc)

JVM很难?可能你看完这篇文章就够了

2.标志-清算算法:分为两阶段“标志”和“清算”。起首标志出哪些工具可被接纳,在标志完成后,将工具向一端移动,然后直接整理掉界线以外的内存。

JVM很难?可能你看完这篇文章就够了

3.复制算法:把内存空间划为两个相称的地区,每次只行使个中一个地区。gc时遍历当前行使地区,把正在行使中的工具复制到其它一个地区中。算法每次只处理赏罚正在行使中的工具,因此复制本钱较量小,同时复制已每每后还能举办响应的内存清算,不会呈现“碎片”题目。不敷之处:1.内存操作率题目2.在工具存活率较高时,其服从会变低。

JVM很难?可能你看完这篇文章就够了

按分区看待可分为:增量网络算法,分代网络算法

1.增量网络:及时垃圾接纳算法,即:在应用举办的同时举办垃圾接纳,理论上可以办理传统分代方法带来的题目。增量网络把对堆空间分别成一系列内存块,行使时先行使个中一部门,垃圾网络时把之前用掉的部门中的存活工具再放到后头没有效的空间中,这样可以实现一向边行使边网络的结果,停止了传统分代方法整个行使完了再停息的接纳的环境。

2.分代网络:(商用默认)基于工具生命周期分别为新生代、晚年月、元空间,对差异生命周期的工具行使差异的算法举办接纳。

JVM很难?可能你看完这篇文章就够了

按体系线程可分为:串行网络算法,并行网络算法,并发网络算法

1.串行网络:行使单线程处理赏罚垃圾接纳事变,实现轻易,服从较高。不敷之处:1.无法施展多处理赏罚器的上风 2.必要停息用户线程

2.并行网络:行使多线程处理赏罚垃圾接纳事变,速率快,服从高。理论上CPU数量越多,越能浮现出并行网络器的上风。不敷之处:必要停息用户线程

3.并发网络:垃圾线程与用户线程同事势情。体系在垃圾接纳时不必要停息用户线程

GC网络器常用组合

JVM很难?可能你看完这篇文章就够了
JVM很难?可能你看完这篇文章就够了

JVM机能调优思绪

JVM很难?可能你看完这篇文章就够了

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读