Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
初秋大大
JavaGuide
提交
47b7c855
J
JavaGuide
项目概览
初秋大大
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
47b7c855
编写于
11月 07, 2021
作者:
G
guide
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[feat]jvm内容重构,删除无用文章,优化文件名
上级
de3a9003
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
17 addition
and
161 deletion
+17
-161
README.md
README.md
+5
-5
docs/java/jvm/JDK监控和故障处理工具总结.md
docs/java/jvm/JDK监控和故障处理工具总结.md
+0
-20
docs/java/jvm/JVM垃圾回收.md
docs/java/jvm/JVM垃圾回收.md
+2
-41
docs/java/jvm/[加餐]大白话带你认识JVM.md
docs/java/jvm/[加餐]大白话带你认识JVM.md
+2
-0
docs/java/jvm/jvm 知识点汇总.md
docs/java/jvm/jvm 知识点汇总.md
+0
-13
docs/java/jvm/jvm参数指南.md
docs/java/jvm/jvm参数指南.md
+3
-1
docs/java/jvm/内存区域.md
docs/java/jvm/内存区域.md
+0
-36
docs/java/jvm/类加载器.md
docs/java/jvm/类加载器.md
+2
-0
docs/java/jvm/类加载过程.md
docs/java/jvm/类加载过程.md
+2
-24
docs/java/jvm/类文件结构.md
docs/java/jvm/类文件结构.md
+1
-21
media/pictures/jvm/java_jvm_compose_garbage_collector.png
media/pictures/jvm/java_jvm_compose_garbage_collector.png
+0
-0
media/pictures/jvm/java_jvm_garbage_collector_parameters.png
media/pictures/jvm/java_jvm_garbage_collector_parameters.png
+0
-0
media/pictures/jvm/java_jvm_heap_parameters.png
media/pictures/jvm/java_jvm_heap_parameters.png
+0
-0
media/pictures/jvm/java_jvm_suggest_parameters.png
media/pictures/jvm/java_jvm_suggest_parameters.png
+0
-0
未找到文件。
README.md
浏览文件 @
47b7c855
...
...
@@ -82,14 +82,14 @@
JVM 这部分内容主要参考
[
JVM 虚拟机规范-Java8
](
https://docs.oracle.com/javase/specs/jvms/se8/html/index.html
)
和周志明老师的
[
《深入理解Java虚拟机(第3版)》
](
https://book.douban.com/subject/34907497/
)
(强烈建议阅读多遍!)。
1.
**[Java 内存区域](docs/java/jvm/
Java
内存区域.md)**
2.
**[JVM 垃圾回收](docs/java/jvm/
JVM
垃圾回收.md)**
3.
[
JDK 监控和故障处理工具
](
docs/java/jvm/
JDK
监控和故障处理工具总结.md
)
1.
**[Java 内存区域](docs/java/jvm/内存区域.md)**
2.
**[JVM 垃圾回收](docs/java/jvm/
jvm
垃圾回收.md)**
3.
[
JDK 监控和故障处理工具
](
docs/java/jvm/
jdk
监控和故障处理工具总结.md
)
4.
[
类文件结构
](
docs/java/jvm/类文件结构.md
)
5.
**[类加载过程](docs/java/jvm/类加载过程.md)**
6.
[
类加载器
](
docs/java/jvm/类加载器.md
)
7.
**[【待完成】最重要的 JVM 参数
指南(翻译完善了一半)](docs/java/jvm/最重要的JVM
参数指南.md)**
9.
**[【加餐】大白话带你认识 JVM](docs/java/jvm/[加餐]大白话带你认识
JVM
.md)**
7.
**[【待完成】最重要的 JVM 参数
总结(翻译完善了一半)](docs/java/jvm/jvm
参数指南.md)**
9.
**[【加餐】大白话带你认识 JVM](docs/java/jvm/[加餐]大白话带你认识
jvm
.md)**
### 新特性
...
...
docs/java/jvm/JDK监控和故障处理工具总结.md
浏览文件 @
47b7c855
<!-- TOC -->
-
[
JDK 监控和故障处理工具总结
](
#jdk-监控和故障处理工具总结
)
-
[
JDK 命令行工具
](
#jdk-命令行工具
)
-
[
`jps`:查看所有 Java 进程
](
#jps查看所有-java-进程
)
-
[
`jstat`: 监视虚拟机各种运行状态信息
](
#jstat-监视虚拟机各种运行状态信息
)
-
[
` jinfo`: 实时地查看和调整虚拟机各项参数
](
#-jinfo-实时地查看和调整虚拟机各项参数
)
-
[
`jmap`:生成堆转储快照
](
#jmap生成堆转储快照
)
-
[
**`jhat`**: 分析 heapdump 文件
](
#jhat-分析-heapdump-文件
)
-
[
**`jstack`** :生成虚拟机当前时刻的线程快照
](
#jstack-生成虚拟机当前时刻的线程快照
)
-
[
JDK 可视化分析工具
](
#jdk-可视化分析工具
)
-
[
JConsole:Java 监视与管理控制台
](
#jconsolejava-监视与管理控制台
)
-
[
连接 Jconsole
](
#连接-jconsole
)
-
[
查看 Java 程序概况
](
#查看-java-程序概况
)
-
[
内存监控
](
#内存监控
)
-
[
线程监控
](
#线程监控
)
-
[
Visual VM:多合一故障处理工具
](
#visual-vm多合一故障处理工具
)
<!-- /TOC -->
# JDK 监控和故障处理工具总结
## JDK 命令行工具
...
...
docs/java/jvm/JVM垃圾回收.md
浏览文件 @
47b7c855
<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} -->
<!-- code_chunk_output -->
-
[
JVM 垃圾回收
](
#jvm-垃圾回收
)
-
[
写在前面
](
#写在前面
)
-
[
本节常见面试题
](
#本节常见面试题
)
-
[
本文导火索
](
#本文导火索
)
-
[
1 揭开 JVM 内存分配与回收的神秘面纱
](
#1-揭开-jvm-内存分配与回收的神秘面纱
)
-
[
1.1 对象优先在 eden 区分配
](
#11-对象优先在-eden-区分配
)
-
[
1.2 大对象直接进入老年代
](
#12-大对象直接进入老年代
)
-
[
1.3 长期存活的对象将进入老年代
](
#13-长期存活的对象将进入老年代
)
-
[
1.4 动态对象年龄判定
](
#14-动态对象年龄判定
)
-
[
1.5 主要进行 gc 的区域
](
#15-主要进行-gc-的区域
)
-
[
2 对象已经死亡?
](
#2-对象已经死亡
)
-
[
2.1 引用计数法
](
#21-引用计数法
)
-
[
2.2 可达性分析算法
](
#22-可达性分析算法
)
-
[
2.3 再谈引用
](
#23-再谈引用
)
-
[
2.4 不可达的对象并非“非死不可”
](
#24-不可达的对象并非非死不可
)
-
[
2.5 如何判断一个常量是废弃常量?
](
#25-如何判断一个常量是废弃常量
)
-
[
2.6 如何判断一个类是无用的类
](
#26-如何判断一个类是无用的类
)
-
[
3 垃圾收集算法
](
#3-垃圾收集算法
)
-
[
3.1 标记-清除算法
](
#31-标记-清除算法
)
-
[
3.2 标记-复制算法
](
#32-标记-复制算法
)
-
[
3.3 标记-整理算法
](
#33-标记-整理算法
)
-
[
3.4 分代收集算法
](
#34-分代收集算法
)
-
[
4 垃圾收集器
](
#4-垃圾收集器
)
-
[
4.1 Serial 收集器
](
#41-serial-收集器
)
-
[
4.2 ParNew 收集器
](
#42-parnew-收集器
)
-
[
4.3 Parallel Scavenge 收集器
](
#43-parallel-scavenge-收集器
)
-
[
4.4.Serial Old 收集器
](
#44serial-old-收集器
)
-
[
4.5 Parallel Old 收集器
](
#45-parallel-old-收集器
)
-
[
4.6 CMS 收集器
](
#46-cms-收集器
)
-
[
4.7 G1 收集器
](
#47-g1-收集器
)
-
[
4.8 ZGC 收集器
](
#48-zgc-收集器
)
-
[
参考
](
#参考
)
<!-- /code_chunk_output -->
# JVM 垃圾回收
# JVM 垃圾回收详解
## 写在前面
...
...
docs/java/jvm/[加餐]大白话带你认识JVM.md
浏览文件 @
47b7c855
# 大白话带你认识JVM
> 来自掘金用户:[说出你的愿望吧丷](https://juejin.im/user/5c2400afe51d45451758aa96)投稿,原文地址:https://juejin.im/post/5e1505d0f265da5d5d744050#heading-28
## 前言
...
...
docs/java/jvm/jvm 知识点汇总.md
已删除
100644 → 0
浏览文件 @
de3a9003
无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)。
掌握了JVM机制,就等于学会了深层次解决问题的方法。对于Java开发者而言,只有熟悉底层虚拟机的运行机制,才能通过JVM日志深入到字节码的层次去分析排查问题,发现隐性的系统缺陷,进而提升系统性能。
一些技术人员开发工具用得很熟练,触及JVM问题时却是模棱两可,甚至连内存模型和内存区域,HotSpot和JVM规范,都混淆不清。工作很长时间,在生产时还在用缺省参数来直接启动,以致系统运行时出现性能、稳定性等问题时束手无措,不知该如何追踪排查。久而久之,这对自己的职业成长是极为不利的。
掌握JVM,是深入Java技术栈的必经之路。
![
jv.png
](
./pictures/HsJXU8S4oVtCTM7.png
)
\ No newline at end of file
docs/java/jvm/
最重要的JVM
参数指南.md
→
docs/java/jvm/
jvm
参数指南.md
浏览文件 @
47b7c855
> 本文由 JavaGuide 翻译自 [https://www.baeldung.com/jvm-parameters](https://www.baeldung.com/jvm-parameters),并对文章进行了大量的完善补充。翻译不易,如需转载请注明出处,作者:[baeldung](https://www.baeldung.com/author/baeldung/) 。
# 最重要的 JVM 参数总结
本文由 JavaGuide 翻译自
[
https://www.baeldung.com/jvm-parameters
](
https://www.baeldung.com/jvm-parameters
)
,并对文章进行了大量的完善补充。翻译不易,如需转载请注明出处,作者:
[
baeldung
](
https://www.baeldung.com/author/baeldung/
)
。
## 1.概述
...
...
docs/java/jvm/
Java
内存区域.md
→
docs/java/jvm/内存区域.md
浏览文件 @
47b7c855
<!-- TOC -->
-
[
Java 内存区域详解
](
#java-内存区域详解
)
-
[
写在前面 (常见面试题)
](
#写在前面-常见面试题
)
-
[
基本问题
](
#基本问题
)
-
[
拓展问题
](
#拓展问题
)
-
[
一 概述
](
#一-概述
)
-
[
二 运行时数据区域
](
#二-运行时数据区域
)
-
[
2.1 程序计数器
](
#21-程序计数器
)
-
[
2.2 Java 虚拟机栈
](
#22-java-虚拟机栈
)
-
[
2.3 本地方法栈
](
#23-本地方法栈
)
-
[
2.4 堆
](
#24-堆
)
-
[
2.5 方法区
](
#25-方法区
)
-
[
2.5.1 方法区和永久代的关系
](
#251-方法区和永久代的关系
)
-
[
2.5.2 常用参数
](
#252-常用参数
)
-
[
2.5.3 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?
](
#253-为什么要将永久代-permgen-替换为元空间-metaspace-呢
)
-
[
2.6 运行时常量池
](
#26-运行时常量池
)
-
[
2.7 直接内存
](
#27-直接内存
)
-
[
三 HotSpot 虚拟机对象探秘
](
#三-hotspot-虚拟机对象探秘
)
-
[
3.1 对象的创建
](
#31-对象的创建
)
-
[
Step1:类加载检查
](
#step1类加载检查
)
-
[
Step2:分配内存
](
#step2分配内存
)
-
[
Step3:初始化零值
](
#step3初始化零值
)
-
[
Step4:设置对象头
](
#step4设置对象头
)
-
[
Step5:执行 init 方法
](
#step5执行-init-方法
)
-
[
3.2 对象的内存布局
](
#32-对象的内存布局
)
-
[
3.3 对象的访问定位
](
#33-对象的访问定位
)
-
[
四 重点补充内容
](
#四--重点补充内容
)
-
[
4.1 String 类和常量池
](
#41-string-类和常量池
)
-
[
4.2 String s1 = new String("abc");这句话创建了几个字符串对象?
](
#42-string-s1--new-stringabc这句话创建了几个字符串对象
)
-
[
4.3 8 种基本类型的包装类和常量池
](
#43-8-种基本类型的包装类和常量池
)
-
[
参考
](
#参考
)
-
[
公众号
](
#公众号
)
<!-- /TOC -->
# Java 内存区域详解
如果没有特殊说明,都是针对的是 HotSpot 虚拟机。
...
...
docs/java/jvm/类加载器.md
浏览文件 @
47b7c855
# 类加载器详解
## 回顾一下类加载过程
类加载过程:
**加载->连接->初始化**
。连接过程又可分为三步:
**验证->准备->解析**
。
...
...
docs/java/jvm/类加载过程.md
浏览文件 @
47b7c855
<!-- TOC -->
# 类加载过程详解
-
[
类的生命周期
](
#类的生命周期
)
-
[
类加载过程
](
#类加载过程
)
-
[
加载
](
#加载
)
-
[
验证
](
#验证
)
-
[
准备
](
#准备
)
-
[
解析
](
#解析
)
-
[
初始化
](
#初始化
)
-
[
卸载
](
#卸载
)
-
[
公众号
](
#公众号
)
<!-- /TOC -->
# 类的生命周期
## 类的生命周期
一个类的完整生命周期如下:
...
...
@@ -115,13 +103,3 @@ Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚
-
《深入理解 Java 虚拟机》
-
《实战 Java 虚拟机》
-
<https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html>
## 公众号
如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。
**《Java 面试突击》:**
由本文档衍生的专为面试而生的《Java 面试突击》V2.0 PDF 版本
[
公众号
](
#公众号
)
后台回复
**"Java 面试突击"**
即可免费领取!
**Java 工程师必备学习资源:**
一些 Java 工程师常用学习资源
[
公众号
](
#公众号
)
后台回复关键字
**“1”**
即可免费无套路获取。
![
我的公众号
](
https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/167598cd2e17b8ec.png
)
docs/java/jvm/类文件结构.md
浏览文件 @
47b7c855
<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} -->
<!-- code_chunk_output -->
-
[
类文件结构
](
#类文件结构
)
-
[
一 概述
](
#一-概述
)
-
[
二 Class 文件结构总结
](
#二-class-文件结构总结
)
-
[
2.1 魔数(Magic Number)
](
#21-魔数magic-number
)
-
[
2.2 Class 文件版本号(Minor&Major Version)
](
#22-class-文件版本号minormajor-version
)
-
[
2.3 常量池(Constant Pool)
](
#23-常量池constant-pool
)
-
[
2.4 访问标志(Access Flags)
](
#24-访问标志access-flags
)
-
[
2.5 当前类(This Class)、父类(Super Class)、接口(Interfaces)索引集合
](
#25-当前类this-class-父类super-class-接口interfaces索引集合
)
-
[
2.6 字段表集合(Fields)
](
#26-字段表集合fields
)
-
[
2.7 方法表集合(Methods)
](
#27-方法表集合methods
)
-
[
2.8 属性表集合(Attributes)
](
#28-属性表集合attributes
)
-
[
参考
](
#参考
)
<!-- /code_chunk_output -->
# 类文件结构
# 类文件结构详解
## 一 概述
...
...
media/pictures/jvm/java_jvm_compose_garbage_collector.png
已删除
100644 → 0
浏览文件 @
de3a9003
77.0 KB
media/pictures/jvm/java_jvm_garbage_collector_parameters.png
已删除
100644 → 0
浏览文件 @
de3a9003
193.3 KB
media/pictures/jvm/java_jvm_heap_parameters.png
已删除
100644 → 0
浏览文件 @
de3a9003
106.5 KB
media/pictures/jvm/java_jvm_suggest_parameters.png
已删除
100644 → 0
浏览文件 @
de3a9003
378.6 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录