前言

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程序

性能优化

                  威宁县属于哪个市?

Java程序员想年后跳槽,对JVM没有深入的理解,我劝你还是别跳了的更多相关文章

  1. Java程序员转Android开发必读经验分享

    小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区 ...

  2. 怎样才是一个基本水平的java程序员?

    怎样才是一个基本水平的java程序员? 熟悉常用的数据结构,包括数组,链表,树,哈希表等. 熟悉结构化编程和面向对象编程. 能够阅读UML设计图,根据UML语义进行编码 了解RDBMS和SQL的使用, ...

  3. 想要成为一名优秀的Java程序员,你需要这8个锦囊

    私底下,隔三差五就有读者问我:"二哥,怎么样才能像你一样,成为一名优秀的 Java 开发者呢?"假如把"怎么才能像你一样"去掉的话,这个问题就是一个好问题,否则 ...

  4. 你想成为优秀的Java程序员吗?

    Java是全世界最受欢迎的3大编程语言之一,它可以开发出许多实用的WEB应用程序和桌面应用程序,更重要的一点,Java是跨平台的语言——编写一次,可以再任何地方运行.另外,Java也很容易入门,如果你 ...

  5. 2020年薪30W的Java程序员都要求熟悉JVM与性能调优!

    前言 作为Java程序员,你有没有被JVM伤害过?面试的时候是否碰到过对JVM的灵魂拷问?   一.JVM 内存区域划分 1.程序计数器(线程私有) 程序计数器(Program Counter Reg ...

  6. 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  7. 十年京东Java程序员的工作总结,写给迷茫中的你!

    很多年前,刚刚从大学毕业的时候,很多公司来校招.其中最烂俗的一个面试问题是:“你希望你之后三到五年的发展是什么?”.我当时的标准回答是(原话):“成为在某一方面能够独当一面的技术专家“.后来经历了几家 ...

  8. 名企6年Java程序员的工作感悟,送给迷茫的你

    程序员从开始选择到坚持下去,工作了六年对一个程序员意味什么?在职位上:高级开发工程师?架构师?技术经理?or ... ?在能力上:各种编码无压力?核心代码无压力?平台架构无压力? or ... fuc ...

  9. 分享下对JAVA程序员成长之路的总结<转>

    我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,手痒来给新人分享下从新手成长为老鸟的已见.   首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set ...

随机推荐

  1. MyBatis 逆向工程(MyBatis 自动生成接口以及xml)的使用

    刚学MyBatis逆向工程(还以为要反汇编呢.....) MyBatis逆向工程 个人理解就是链接数据库自动生成相关的增删改查相关的类 以及xml文件 (其中有一些不足 应该就是多表链接的问题需要自己 ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-forward

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. UVA - 524 Prime Ring Problem(素数环)(回溯法)

    题意:输入n,把1~n组成个环,相邻两个数之和为素数. 分析:回溯法. #pragma comment(linker, "/STACK:102400000, 102400000") ...

  4. linux下安装mysql5.7(centos6.0)

    注:因为网络原因,这个mysql安装是我以前在学校的时候找到的一个安装包,不过也找到了下载的地址:http://www.itmop.com/downinfo/143061.html下载完成后,把文件上 ...

  5. 使用NlohmannJson写JSON保留插入顺序

    1. 正文 nlohmann/json是一个C++的读写JSON的组件,号称使用现代C++范式写的.简单看了一下,这个组件确实包含了很多cpp11以上的特性,在vs2015及一下的版本甚至没办法正常编 ...

  6. sping MVC 定时任务的设置

    项目中用到了定时任务,写一篇随笔记录一下. 首先在Spring的配置文件ApplicationContext.xml文件的beans标签中添加 xmlns:task="http://www. ...

  7. 三十九、SAP中多语言的处理

    一.点击菜单翻译 二.选择目标语言 三.输入需要翻译的内容,并保存 四.我们切换到英语模式登录 五.查看我们的代码 六.输出结果如下,多语言特征就显示了

  8. 075-PHP数组添加元素

    <?php $arr = array(); //定义一个数组,它没有任何元素 echo '增加元素之前数组中元素的个数为:' . count($arr); //输出数组个数 for ($i = ...

  9. oracle 使用触发器实现id自增

    前提:存在数据库di_test,主键为id.1.创建一个索引sequence create sequence di_test_id minvalue 1 nomaxvalue start with 1 ...

  10. oracle中判断"非"

    在oracle中判断为"非"最常见的两种情况,一个是"不等于",一个的"非空". 通过查找资料得知,oracle中判断不等于的方法有好多种: ...