Java虚拟机思维导图

背景

在公司实习了一段时间,觉得不太适合这里。可能是心里想着去大厂,导致身在曹营心在汉。也可能是刚步入社会,尤其是程序员的行业,又碰巧赶上项目即将完工将要上线,对加班还是没有做足充分的准备,一时间多少有点不满。也可能是其他原因。不管怎么样吧,还是打算等到实习期结束就换公司,去追逐自己的梦想。大厂不好进,先不说知识面的广度,单是基础知识的深度这一关就拦下了大量的人。所以我打算先加深对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公司为我们提供了一些工具。
在这里插入图片描述

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

性能优化

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


#### 再次重申下

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学习Java思维导图 Java是一门广泛应用于软件开发的编程语言,为了快速学习和掌握Java,我准备了以下30张思维导图,助你理解Java的核心概念和重要知识点。 1. Java基础知识:包括Java的发展历史、Java的特点和Java的基本语法。 2. 数据类型:介绍Java的基本数据类型、整数和浮点数的区别。 3. 控制语句:包括条件语句if-else、循环语句for和while。 4. 数组:介绍数组的概念、创建和使用数组。 5. 字符串操作:字符串的定义、字符串的常用方法和字符串与其他数据类型的转换。 6. 面向对象编程:介绍面向对象的概念、类和对象的定义。 7. 类和对象:类与对象的关系、类的成员变量和成员方法的定义。 8. 方法和函数:方法的定义、方法的重载和递归。 9. 继承和多态:继承的概念、类的继承和接口的使用。 10. 异常处理:异常的分类、try-catch语句和异常的抛出。 11. 文件操作:文件的读写操作、IO流的使用和文件处理的异常处理。 12. 集合:集合的概念、List、Set和Map的使用。 13. 泛型:泛型的定义、泛型类和泛型方法的使用。 14. 多线程:线程的概念、创建和启动线程、线程同步和线程通信。 15. 网络编程:基于TCP/IP协议的网络编程、Socket的使用。 16. GUI编程:Swing和AWT库的使用、组件的布局和事件处理。 17. 数据库连接:JDBC的基本使用、数据库的增删改查操作。 18. 注解:注解的定义、常用注解和自定义注解的使用。 19. 反射:反射的概念和作用、获取类的信息和动态调用方法。 20. 设计模式:常用的设计模式和使用场景。 21. Java虚拟机Java虚拟机的概念、内存管理和垃圾回收。 22. JUnit测试:JUnit框架的使用和测试用例的编写。 23. XML和JSON:XML和JSON的基本语法、解析和生成XML/JSON数据。 24. Web开发:Servlet和JSP的使用、Web应用的部署和调试。 25. 框架:介绍常用的Java框架,如Spring、Hibernate等。 26. 分布式系统:分布式计算的概念、RMI和Web Services的使用。 27. 安全性:数据加密和解密、安全通信和权限控制。 28. 性能优化:Java程序的性能调优和常见性能问题。 29. 其他技术:介绍与Java相关的其他技术,如Android开发、大数据分析等。 30. 实践项目:通过实践项目来巩固所学的Java知识,提高实际编程能力。 以上30张思维导图概括了学习Java所需的核心知识点,希望能够对你的学习提供帮助!祝你学习愉快!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值