Young Kbt blog Young Kbt blog
首页
  • java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • 设计模式
  • 算法
  • 知识
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
    • Vue2-Admin (opens new window)
    • Vue3-Admin(完善) (opens new window)
GitHub (opens new window)

Shp Liu

朝圣的使徒,正在走向编程的至高殿堂!
首页
  • java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • 设计模式
  • 算法
  • 知识
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
    • Vue2-Admin (opens new window)
    • Vue3-Admin(完善) (opens new window)
GitHub (opens new window)
  • 导航栏 - 目录页

  • Java - 目录页

    • JavaSE - 知识体系
    • Collection - 知识体系
    • JUC - 知识体系
    • JVM - 知识体系
      • 技巧
        • 技巧1
        • 技巧2
      • 参考
    • Java版本新特性 - 知识体系
  • 数据库- 目录页

  • 框架 - 目录页

  • Spring生态 - 目录页

  • 开发 - 目录页

  • 工具 - 目录页

  • 前端 - 目录页

JVM - 知识体系
JVM 是 Java Virtual Machine(Java虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
目录
1. JVM - Java体系结构
2. JVM - 类加载子系统
3. JVM - 运行时数据区概述及线程
4. JVM - 程序计数器
5. JVM - 虚拟机栈
6. JVM - 本地方法接口
7. JVM - 本地方法栈
8. JVM - 堆
9. JVM - 方法区
10. JVM - 对象实例化内存布局与访问定位
11. JVM - 直接内存
12. JVM - 执行引擎
13. JVM - StringTable字符串常量池
14. JVM - 垃圾回收概述
15. JVM - 垃圾回收相关算法
16. JVM - 垃圾回收相关概念
17. JVM - 垃圾回收器
18. JVM - Class文件结构
19. JVM - 字节码指令集与解析
20. JVM - 类的加载过程详解
21. JVM - 再谈类的加载器
22. JVM - 调优概述
23. JVM - 监控及诊断工具命令行
24. JVM - 监控及诊断工具GUI
25. JVM - 运行时参数
26. JVM - 分析GC日志

本内容分为三篇:

  • 上篇为 JVM - 内存与垃圾回收篇

  • 中篇为 JVM - 字节码与类的加载篇

  • 下篇为 JVM - 性能监控与调优篇

JVM - 内存与垃圾回收篇内容分为:

  • 类加载子系统:第 2 章(类加载子系统)
  • 运行时数据区:第 3 章(运行时数据区概述及线程) - 第 11 章(直接内容)
  • 执行引擎:第 12 章(执行引擎)
  • 面试常问:第 13 章(StringTable)
  • 垃圾回收机制:第 14 章(垃圾回收概述) - 第 17 章(垃圾回收期)

JVM - 字节码与类的加载篇内容为第 18 章 - 第 21 章。

JVM - 性能监控与调优篇内容为第 22 章 - 第 26章。

学习自 https://www.bilibili.com/video/BV1PJ411n7xZ。

JVM - 内存与垃圾回收篇内容学习内容的顺序图(从上往下,中间是核心):

image-20200705080911284

# 技巧

# 技巧1

在开发中,能够使用 final 修饰的时候,建议使用上,因为在编译期间就确定值,提高效率。

# 技巧2

遇到多个 String 相加,应该换成 StringBuilder

public static void method1(int highLevel) {
    String src = "";
    for (int i = 0; i < highLevel; i++) {
        src += "a"; // 每次循环都会创建一个 StringBuilder 和 String 对象(应该避免)
    }
}

public static void method2(int highLevel) {
    // 只需要创建一个StringBuilder
    StringBuilder sb = new StringBuilder(); // 优化:StringBuilder s = new StringBuilder(highLevel);
    for (int i = 0; i < highLevel; i++) {
        sb.append("a");
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

方法 1 耗费的时间:4005ms,方法 2 消耗时间:7ms。

方法 2 的再次优化:new StringBuilder() 构造器里可以传入参数(长度),所以为了避免后续长度不够的扩容,可以在创建的时候确定长度。

具体看 JVM - 拼接操作和append性能对比。

# 参考

因为个人的时间原因,没有从头到尾完全手写笔记,而是参考了别人的一些笔记框架,然后在学习的途中,改成自己的布局和知识理解,这里注明参考的笔记来源:

  • 1 - 17 篇(部分)参考 https://gitee.com/moxi159753/LearningNotes/tree/master/JVM
  • 18 - 21 篇(部分)参考 https://www.zhihu.com/column/c_1303831719934214144
  • 22 - 26 篇(部分)参考 https://gitee.com/moxi159753/LearningNotes/tree/master/JVM
更新时间: 2024/11/02, 18:07:00
JUC - 知识体系
Java版本新特性 - 知识体系

← JUC - 知识体系 Java版本新特性 - 知识体系→

最近更新
01
技术随笔 - Element Plus 修改包名 原创
11-02
02
Reactor - 扩展性
11-02
03
Reactor - 最佳实践
11-02
更多文章>
Theme by Vdoing | Copyright © 2021-2024 Young Kbt | blog
桂ICP备2021009994号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式