Java虚拟机思维导图

本文分享了一名实习生在业余时间自学Java虚拟机的过程,通过理解Java编译器、类加载、JVM体系、内存区域、垃圾回收等核心概念,深化对Java技术栈的认识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

在公司实习了一段时间,觉得不太适合这里。可能是心里想着去大厂,导致身在曹营心在汉。也可能是刚步入社会,尤其是程序员的行业,又碰巧赶上项目即将完工将要上线,对加班还是没有做足充分的准备,一时间多少有点不满。也可能是其他原因。不管怎么样吧,还是打算等到实习期结束就换公司,去追逐自己的梦想。大厂不好进,先不说知识面的广度,单是基础知识的深度这一关就拦下了大量的人。所以我打算先加深对java的认识,不在停留在使用阶段,而是要去理解为什么要这么用。
首先开始的就是java虚拟机,利用实习的一些零碎时间和周六日的时间,在网上看了一些博客以及视频,大致对java虚拟机有了一些了解,就把学到的知识做了一个思维导图,方便从"宏观性"把控虚拟机的组成,也方便后期的复习。
注意:这里只是学习总结,肯定有些不足,欢迎大家指出。另外,这个思维导图偏向于对虚拟机的结构展示,具体的知识点并没有过多的写在思维导图中,还是要去查资料的。
好了,话不多说,进入正题!

java编译器

我们都知道java虚拟机是执行class文件的,那么class文件是怎么生成的?先来了解一下javac的知识吧!

总体图样

先来看看总体的图样,然后再分别对每个部分进行了解。
在这里插入图片描述

javac编译

第一部分我们先来了解java文件是怎么变成class文件的。
在这里插入图片描述
这里我们需要了解javac的执行流程。

class文件结构

编译好了class文件,我们需要了解class文件中都有什么东西。虽然我们只关注java文件怎么写的,不太注意class文件。
在这里插入图片描述
这两块东西大致了解一下,下面的才是重点。
在这里插入图片描述

类加载

有了class文件,我们在使用就得把编译好的class加载到内存中,交给java虚拟机来处理。这里我们需要了解加载的流程,以及每一步的作用。
在这里插入图片描述

这里需要注意一些名词的意思,不弄懂名词的意思,很可能会混淆对知识点的理解。

jvm体系

我们都知道我们的程序都是运行在jvm之上的,所以有必要了解一下这个在java中有着举足轻重地位的jvm。
在这里插入图片描述

java虚拟机

总体结构

老套路,还是先来看看java虚拟机的总体结构。
在这里插入图片描述

虚拟机发展史

先不看虚拟机中有什么东西,我们先来了解在"历史的长河"中有哪些虚拟机。
在这里插入图片描述

因为我们的java默认是HotSpot虚拟机,所以可以重点关心这个,其他的就做一些了解。

内存区域

内存区域和垃圾回收时java虚拟机中的重点,我们需要着重学习这两个。
在这里插入图片描述

在这里插入图片描述

这里写的有点粗糙,毕竟理解还不全面。 ̄□ ̄||

垃圾回收

了解完内存分布,接下来就是垃圾回收了!
在这里插入图片描述

这个的重要性就不多说了。

虚拟机工具

如何观察看不见的内存空间使用情况和垃圾回收的情况呢?sun也就是oracle公司为我们提供了一些工具。
在这里插入图片描述

经常使用到的还是可视化的工具,侧重了解这个。

性能优化

这个就是经验之谈了,没有固定的方法。可以去查一些资料。


#### 再次重申下

这个思维导图是我自己写的,由于知识面不够,可能导致思维导图的排版不恰当、列出的内容不全等等。有意见的欢迎提出,但是请诸位道友下手轻点,毕竟混迹在江湖中也是不易!^ — ^

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值