栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jvm总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jvm总结

jvm即java虚拟机

java代码经过编译生成字节码,字节码通过类加载器,到达工作数据区,其包含程序计数器、java虚拟机栈、本地方法栈、堆、方法区,数据区再连接执行引擎以及连接本地方法接口,接口连接本地方法库。

其中数据区可按照线程是否私有分为

线程私有:

程序计数器:记录当前线程字节码的执行位置,在多线程情况下就可以通过程序计数器在线程切换后恢复到正确的执行位置

java虚拟机栈:方法的入栈出栈就是在这里执行的,每个线程的方法在执行的过程就会创建一个栈帧,存储局部变量表、方法出口等信息,出入栈代表方法执行结束和开始。

本地方法栈:是为了执行本地方法而创建的栈。

线程共享:

堆:gc垃圾回收的主要场所,用于存储创建的对象。

方法区:用于存储已被虚拟机加载的类信息、静态变量、常量等信息。

hotspot虚拟机

对象的创建

虚拟机遇到new这个指令的时候,会到方法区的常量池看看是否已经加载过这个类信息了,如果未加载,则进行类的加载、解析、初始化,然后为对象在堆上分配一个空间然后初始化。

当方法栈中调用方法,需要引用对象时,通过指针指向堆中的对象地址。

判断对象是否已经“死亡”

可达性分析

是一颗树的结构,通过gcroot这个根节点,向下搜索走过的路径,当一个对象无法与root节点相联系的时候,说明这个对象已经“死亡”,可以在下一次gc中回收。

GC

新生代(包含大比例的伊甸园区和小比例的两个幸存者区)

算法:标志清除算法,复制算法

标志清除算法:就是可以gc回收的对象做上标志,然后清除

复制算法:把可用内存一次只使用一半,当一半使用完了,复制存活的对象到另一半,然后对原先的一半进行清空。好处是不会产生碎片。

老年代

当新生代中gc未能回收的对象就来到老年代,强GC

算法:标记整理算法

通过对可gc回收的对象做标记,再一次性进行回收,然后把存活的对象往一端移动。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号