JVM相关

本文详细介绍了JVM的相关知识,包括类加载机制的双亲委派模型及其优缺点,JVM运行内存的组成与各部分作用,如程序计数器、虚拟机栈和堆内存的细分。此外,还讨论了对象创建过程、内存溢出与内存泄漏以及逃逸分析。最后,简要概述了字节码、垃圾回收的概念以及GC算法和JVM配置参数。
摘要由CSDN通过智能技术生成

目录

1   入门部分

1.1  为什么要学习 JVM?

1.2  你了解哪些 JVM 产品?

         1.3  JVM 的构成有哪几部分?

2 类加载部分

2.1  你知道哪些类加载器?

2.2  为什么需要多个类加载器?

2.3  什么是双亲委派类加载模型?

2.4  双亲委派方式加载类有什么优势、劣势?

2.5  描述一下类加载时候的基本步骤是怎样的?

2.6  什么情况下会触发类的加载?

2.7  类加载时静态代码块一定会执行吗?

2.8  如何理解类的主动加载和被动加载?

2.9  为什么要自己定义类加载器,如何定义?

2.10  内存中一个类的字节码对象可以有多个吗?

3   JVM 运行内存部分

3.1  JVM 运行内存是如何划分的?

3.2  JVM 中的程序计数器用于做什么?

3.3  JVM 虚拟机栈的结构是怎样的?

3.4  JVM 虚拟机栈中局部变量表的作用是什么?

3.5  JVM 虚拟机栈中操作数栈的做用是什么?

3.6  JVM 堆的构成是怎样的?

3.7  Java 对象分配内存的过程是怎样的?

3.8  JVM 年轻代幸存区设置的比较小会有什么问题?

3.9  JVM 年轻代伊甸园区设置的比例比较小会有什么问题?

3.10  JVM 堆内存为什么要分成年轻代和老年代?

3.11  项目中最大堆和初始堆的大小为什么推荐设置为一样的?

3.12  什么情况下对象会存储到老年代?

3.13  Java 中所有的对象创建都是在堆上分配内存的?

3.14  如何理解 JVM 方法区以及它的构成是怎样的?

3.15  JDK8 中 Hotsport 虚拟机的方法区内存在哪里?

3.16  什么是逃逸分析以及可以解决什么问题?

3.17  如何理解对象的标量替换,为什么要进行标量替换?

3.18  什么是内存溢出以及导致内存溢出的原因?

3.19  什么是内存泄漏以及导致内存泄漏的原因?

3.20  JAVA 中的四大引用类型有什么特点?

3.21  项目中的哪些地方用到了缓存?

3.22  假如让你设计一个缓存你会考虑哪些问题?

4 字节码增强部分

4.1  什么是字节码?

4.2  为何要学习字节码?

4.3 如何解读字节码内容?

4.4 字节码内容由哪几部分构成?

4.5 什么是字节码增强?

4.6 为什么要进行字节码增强?

4.7 你了解哪些字节码增强技术?

4.8 什么是热替换以及如何实现?

5   JVM 垃圾回收部分

5.1  何为 GC?

5.2  为什么要 GC?

5.3  如何判定对象是否为垃圾?

5.4  你知道哪些 GC 算法?

5.5  JVM 中有哪些垃圾回收器?

5.6  如何查看 JVM 默认的垃圾收集器?

5.7  说出几个常用的 JVM 配置参数?

5.8  JAVA 中的堆区为什么要分代?

5.9  服务频繁 fullgc,younggc 次数较少,可能原因?

5.10  你知道哪些 JVM 小工具?

1   入门部分
1.1  为什么要学习 JVM?
第一:为了面试。(企业招聘战略在升级,业务和技术问的越来越身)

第二:为了更好的理解 JAVA。

第三:为了更好的解决线上问题。

1) 实现线上软件升级。(热替换)

2) 更好防止内存泄漏,提高内存的有效使用率。

3) 更好提高系统的吞吐量。

1.2  你了解哪些 JVM 产品?
Oracle 公司的 HotSpot。

IBM 公司的 J9。

阿里公司的 TaobaoVM。

1.3  JVM 的构成有哪几部分?
第一:类加载子系统(负责将类读到内存,校验类的合法性,对类进行初始化)

第二:运行时数据区(负责存储类信息,对象信息,执行逻辑)

第三:执行引擎(负责从指定地址对应的内存中数据然后解释执行以及 GC 操作)

第四:本地库接口(负责实现 JAVA 语言与其它编程语言之间的协同)

2 类加载部分
2.1  你知道哪些类加载器?
第一:BootStrapClassLoader

第二:ExtClassLoader

第三:AppClassLoader

第四:自定义 ClassLoader

2.2  为什么需要多个类加载器?
       每

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香扑扑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值