网站首页 > 技术文章 正文
前言
Java 虚拟机是学习 Java 的基础,也是迈入高级 Java 开发工程师的必备知识点。所以今天这篇文章我们来聊聊如何从零开始学习 Java 虚拟机。
深入浅出Java虚拟机
对于刚刚接触 JVM 的同学来说,JVM 就像一个黑盒一样,完全不知道这是一个什么东西。所以对于小白来说,最重要是搞清楚 JVM 到底是干嘛的,以及其常用的知识框架。针对这样的需求,可以看一下《深入理解Java虚拟机》,这本书是国内学习 JVM 的必备书籍。通过阅读这本书,你对 JVM 的一些知识点会了解得更加全面。
JVM与性能优化知识点整理
一、JVM内存区域划分
1.程序计数器(线程私有)
2Java栈(线程私有)
3.本地方法栈(线程私有)
4.堆(线程共享)
5.方法区(线程共享)
6.直接内存(线程共享)
二、JVM执行子系
1.Class类文件结
1.1Java跨平台的基础.
1.2.Class类的本质
2.字节码指
2.1加载和存储指令
2.2运算或算术指令
2.3类型转换指令
2.4创建类实例的指令
2.5创建数组的指令
2.6访问字段指令
2.7数组存取相关指令
2.8检查类实例类型的指令
2.9操作数栈管理指
2.10控制转移指令
2.11方法调用指令
2.12方法返回指令
2.13异常处理指令
2.14同步指
3.类加载机制
4.类加载器
4.1系统的类加载器
4.2双亲委派模型
5.Tomcat类加载机制
6.方法调用详解.
6.1解析
6.2静态分派
6.3动态分派
6.4基于栈的字节码解释执行引擎
三、垃圾回收器和内存分配策略
1Java中是值传递还是引用传递?
2.引用类型
3.基本垃圾回收算法
3.1按照基本回收策略分
3.2按分区对待的方式分
3.3按系统线程分
4.分代处理垃圾.
5JAVA中垃圾回收GC的类型
四、编写高效优雅Java程序.
1.面向对象
1.1构造器参数太多怎么办?
1.2不需要实例化的类应该构造器私有.
1.3不要创建不必要的对象
1.4避免使用终结方法..
1.5使类和成员的可访问性最小化.
1.6使可变性最小化
1.7复合优先于继承.......
1.8接口优于抽象类
2.方法
2.1可变参数要谨慎使用.
2.2返回零长度的数组或集合,不要返回null.
2.3优先使用标准的异常.
3.通用程序设
五、性能优化
1.常用的性能评价/测试指标
1.1响应时间
1.2并发数
1.3吞吐量
1.4关系
2.常用的性能优化手段
2.1避免过早优化
2.2进行系统性能测试
2.3寻找系统瓶颈,分而治之,逐步优化.
2.4前端优化常用手段
3应用服务性能优化
3.1缓存
3.1.1缓存的基本原理和本质
3.1.2合理使用缓冲的准则
3.1.3分布式缓存与一致性哈希
3.2异步
3.2.1同步和异步,阻塞和非阻塞
3.2.2常见异步的手段
3.3集群
3.4应用相关
3.4.1代码级
3.4.2并发编程
3.4.3资源的复用
3.4.4 JVM
3.4.5 GC调优
3.4.6调优实战
3.4.7存储性能优化
由于文章篇幅过长,小编整理成一套PDF文档的格式把JVM以及性能优化解析以及《深入浅出Java虚拟机》整理完成,获取该文档方式:关注我私信回复【架构书籍】即可
记得帮忙转发分享此文后私信我哟!
JVM内存区域划分
JVM执行子系
垃圾回收器和内存分配策略
编写高效优雅Java程序
性能优化
由于文章篇幅过长,小编整理成一套PDF文档的格式把JVM以及性能优化解析以及《深入浅出Java虚拟机》整理完成,获取该文档方式:关注我私信回复【架构书籍】即可
记得帮忙转发分享此文后私信我哟!
猜你喜欢
- 2024-10-07 让 Java 程序运行更快的 15 个技巧,肯定有你不知道的
- 2024-10-07 900行"又臭又长"的类重构,IDEA用几分钟就搞定
- 2024-10-07 坑!python用空列表作为默认参数,让我怀疑遇到了灵异代码
- 2024-10-07 Java8函数式编程深入浅出(函数式编程和面向对象的区别)
- 2024-10-07 详解synchronized和锁升级,以及偏向锁和轻量级锁的升级
- 2024-10-07 Java开发过程中提升代码复用性的方法及规范总结
- 2024-10-07 线上一次fullgc搞得鸡飞狗跳后,我总结了这篇文章
- 2024-10-07 接口性能优化技巧,有点硬(接口调优)
- 2024-10-07 聊聊那些奇葩的代码规范 —— 代码放一行
- 2024-10-07 Java进程CPU占用高导致的网页请求超时的故障排查
- 1515℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 573℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 513℃MySQL service启动脚本浅析(r12笔记第59天)
- 487℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃启用MySQL查询缓存(mysql8.0查询缓存)
- 469℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 449℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 447℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (83)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)