前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【原创】JVM系列01 | 开篇

【原创】JVM系列01 | 开篇

作者头像
java进阶架构师
发布2020-05-29 17:25:06
4120
发布2020-05-29 17:25:06
举报
文章被收录于专栏:Java进阶架构师Java进阶架构师

1. Java 虚拟机是什么?

1.1 虚拟机

虚拟机:虚拟的计算机,一个用来执行虚拟计算机指令的软件。

虚拟机分为系统虚拟机和程序虚拟机。

系统虚拟机:提供一个可运行完整操作系统的软件平台,如 Visual Box、VMware。

程序虚拟机:专门执行单个程序的,典型代表 Java 虚拟机。Java 虚拟机中执行的指令称为 Java 字节码指令。

1.2 Java 虚拟机

Java 虚拟机是专门执行 Java 字节码指令的虚拟机。

Java 程序以 Java 虚拟机为中介,运行于各个平台。物理机情况是千差万别的,而 Java 虚拟机在千差万别的物理机上建立了一个统一的运行平台,实现了 Java 程序可以在不同的平台上运行。

Java 虚拟机使得 Java 程序员可以不用关注物理硬件的兼容性,而把精力集中在具体业务逻辑上,只要掌握必要的 Java API、Java 语法以及适当的第三方框架就可以满足日常开发需求。

2. 为什么学习 Java 虚拟机?

如果你只是掌握了 Java 语法以及 Java API,虽然可以完成日常编程,但是如果要开发企业级应用或者开发对性能、稳定性和可扩展性要求高的程序,不了解 Java 虚拟机的技术特性和运行原理就不能写出适合虚拟机运行和优化的代码。

相信各位程序员朋友跟我一样,身边存在都这两种人:

第一种:程序设计只关心逻辑功能是否实现,调用现成接口不看具体实现,写代码很少注意性能问题,给人一种混日子摸鱼的感觉。这种人当然就很好的利用的了 Java 虚拟机提供的便利,了解语法和 API 能编程就好了,Java 虚拟机怎么运行怎么优化都不关心。

第二种:在保证功能实现的基础上会列出多种设计,做一个性能最优的选择,编码中也能注意细节,拿到封装好的接口时会去研究下是如何实现的。在我看来这才是一个程序员该有的样子,而 Java 虚拟机也是这种人想要学习和必须学习的。

当然,能够在关注公众号或者网上搜索学习 Java 虚拟机,并点开这篇文章的你一定是第二种人了。那么就来看下如何学习 Java 虚拟机。

3. 怎么学 Java 虚拟机?

接下来我会通过一个系列的文章类系统的讲解 Java 虚拟机,希望大家可以一起学习和探索。系列分为以下几个部分:

  1. Java 虚拟机基本结构:堆、栈、方法区的内存空间的作用和彼此之间联系。
  2. Java 虚拟机的常用配置参数:垃圾回收跟踪参数、堆参数、栈参数、方法区参数等。
  3. Java 虚拟机垃圾回收机制:垃圾回收算法、引用强度、垃圾收集器内存分配等。
  4. Java 性能监测工具:Linux、Windows 下的性能监测工具、JDK 命令行性能监测工具、JDK 可视化性能监测工具。
  5. 类装载系统:Class 类文件结构、Class 文件装载流程、类加载器 ClassLoader。
  6. 字节码执行:字节码常用指令、ASM 操作字节码、Java Agent 运行时修改类、动态函数调用、静态编译优化、JIT 优化。

以下是本系列文章思路的思维导图:

4. 说明

4.1 Java 虚拟机的种类

Java 虚拟机种类有 Hotspot、JRockit、J9...等。

Hotspot 占有绝对的市场地位,无特殊说明本系列文章都是针对 Hotspot 虚拟机。

4.2 Java 虚拟机规范

Java 虚拟机规范包括:虚拟机的内部结构、虚拟机执行的字节码类型和功能、Class 文件结构、类的加载等。

Oracle 官网(https://docs.oracle.com/javase/specs/)上可以看到虚拟机规范:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java进阶架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Java 虚拟机是什么?
    • 1.1 虚拟机
      • 1.2 Java 虚拟机
      • 2. 为什么学习 Java 虚拟机?
      • 3. 怎么学 Java 虚拟机?
      • 4. 说明
        • 4.1 Java 虚拟机的种类
          • 4.2 Java 虚拟机规范
          相关产品与服务
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档