文档章节

深入理解Java虚拟机

丿丶海阔天空
 丿丶海阔天空
发布于 2017/02/19 13:16
字数 908
阅读 1
收藏 0

2:程序计数器,Java虚拟机栈(每一个Java方法执行时都会创建一个栈帧,用于保存方法的局部变量表,方法出口,操作栈,动态链接),本地方法栈(为native方法服务),都是线程私有的,随着线程开始而产生线程结束而结束 Java堆属于线程共享,垃圾回收主要回收Java堆 3:垃圾收集器 【1】标记-清除(Mark-sweep)算法:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。缺点是效率不高,会产生大量不连续的内存碎片 【2】复制(copying)算法:将可用的内存按容量分为大小相等的两块,每次只使用其中的一块。当着一块的内存用完了,就将还存活这的对象复制到另外一块上边,然后再把已使用过的内存空间一次清理掉。特点:每次都是清理一块内存,避免了内存碎片,但是分配内存时就浪费了一半,并且在存活对象比较多时效率会很低,可采用8:1:1的分配方式,最后只需将这9份中存活对象复制到那一份上,但是需要老年代进行内存担保。 【3】标记-整理算法:将存活对象都向一端移动,然后直接清理掉段边界以外的内存 【4】分代收集算法:(目前商业虚拟机都采用)根据对象存活周期将内存分配为几块,这样就可以根据不同的年代选择适合的收集算法,例如新生代中对象存活周期短,每次回收时存活对象较少,就选用复制算法, ~{垃圾收集器} serial收集器:单线程收集器,适合运行在client模式下的新生代垃圾收集

parnew收集器:多线程收集器,适合在server模式下新生代垃圾收集

parallel scavenge

serial old收集器:适合于老年代,采用标记整理算法

paralled old收集器:是parallel scavenge收集器的老年代版本,使用多线程和“标记-整理算法”

 CMS收集器:一种以获取最短回收停顿时间为目标的收集器,基于“标记-清除算法”,有三个显著的缺点:对CPU资源非常敏感,无法处理浮动垃圾(并发标记之后产生的垃圾),会产生大量的内存碎片


 G1收集器:较cms的改进(1)采用的“标记-整理算法”,避免了内存碎片的产生(2)可以非常精确地控制停顿,既能让使用者明确指定在一个长度在M毫秒的时间片内,消耗在垃圾收集上的时间不得超过N毫秒

4:.class文件结构:依次为 魔数->常量池->访问标志->class文件中由“类索引,父类索引与接口索引”来确定一个类的继承关系->字段表集合-> 方法表集合->属性表集合(code属性,exceptions属性,lineNumberTable属性,localVarableTable属性,sourceFile属性,sourceValue属性,innerclasses属性)

5:类的加载过程: 类的初始化的四种情况:

6:类与加载器:双亲委派模型

7:Java内存模型与高效并发

JVM虚拟机学习(1):体系结构,内存模型 http://www.importnew.com/22217.html JVM虚拟机学习(2):垃圾收集算法http://www.importnew.com/22223.html JVM虚拟机学习(3):类加载机制http://www.importnew.com/22228.html

© 著作权归作者所有

丿丶海阔天空
粉丝 0
博文 2
码字总数 908
作品 0
渭南
私信 提问
面试中关于Java虚拟机(jvm)的问题看这篇就够了

最近看书的过程中整理了一些面试题,面试题以及答案都在我的文章中有所提到,希望你能在以问题为导向的过程中掌握虚拟机的核心知识。面试毕竟是面试,核心知识我们还是要掌握的,加油~~~ 下面...

snailclimb
2018/05/12
0
0
JVM系列开篇:为什么要学虚拟机?

跟许多人一样,我一开始接触 Java 虚拟机只是因为面试需要用到,所以硬着头皮看看。所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试。但我经过了几年的学习和实战,我发现...

陈树义
2018/11/06
0
0
分享面试中Java虚拟机的知识

投Java岗的同学难免会被问到Java虚拟机,如果能答出来一定加分不少。 前一段时间读了《深入理解Java虚拟机》,读完之后有种豁然开朗的感觉。发现自己以前写的Java程序都太Low了,在不了解Jav...

350142639
2016/08/31
372
1
《成神之路-基础篇》JVM——JVM内存结构(已完结)

Java内存模型,Java内存管理,Java堆和栈,垃圾回收 本文是《成神之路系列文章》的第一篇,主要是关于JVM的一些介绍。 持续更新中 参考文章: Java虚拟机的内存组成以及堆内存介绍 Java堆和栈...

2018/05/05
0
0
读《深入理解Java虚拟机》- 笔记08

《深入理解Java虚拟机:JVM高级特性与最佳实践》第2版 第10章 早期(编译期)优化 59. 语法糖 在计算机语言中添加某种语法,对语言的功能没有影响,但是方便开发人员使用。 泛型是一种语法糖...

阿历Ali
2018/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
55分钟前
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
8
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
11
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
10
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部