从零出发--啃透这迷人该死的JVM---概述

JVM的基础知识

JVM从编译到执行
  • Java 程序的执行过程

    一个Java程序,首先经过javac编译成.class文件,然后JVM将其加载到方法区,执行引擎将会执行这些字节码。执行时,会翻译成操作系统相关的函数。JVM作为.class翻译的存在,输入字节码,调用操作系统函数。

    过程如下:Java文件->编译器->字节码->JVM->机器码

  • JVM、JRE、JDK的关系

    JVM只是一个翻译,把class翻译成机器识别的指令,同时一个class文件还要需要很多依赖库,这时候就需要用到JRE

    JRE是什么,它除了包含JVM之外,提供了很多类库,JVM标准加上实现的一大堆基础类库,就组成了Java运行时环境

    但对于一般开发来说,JRE还是不够满足,我们需要编译代码,调试代码,打包代码,有时候还需要反编译代码,这时需要使用到JDK

  • JVM的作用:从软件层面屏蔽不同操作系统在底层和指令的不同,同时JVM是一个虚拟化的操作系统,类似于Linux或Windows的操作系统,只是它架在操作系统之上,接收字节码,把字节码翻译成操作系统指令进行执行

  • JVM的特性:跨平台和跨语言

    • 跨平台:我们写一个类,在不同的操作系统上执行效果是一样的,为了实现跨平台,不同操作系统需要对应的JDK版本

    • 跨语言:JVM只识别字节码,所以JVM其实跟语言是解耦的,没有直接关联,JVM运行不是翻译Java文件,而是识别class文件,这个一般称之为字节码。像Groovy、kotlin、Scala等语言,其实也是编译成字节码,所以也能在JVM上跑。Java的跨语言特性一定程度上奠定了非常强大的Java语言生态圈。

  • 常见的JVM实现
    在这里插入图片描述
    在这里插入图片描述

  • JVM整体知识模块

    JVM 能涉及非常庞大的一块知识体系,比如内存结构、垃圾回收、类加载、性能调优、JVM 自身优化技术、执行引擎、类文件结构、监控工具等。

    但是在所有的知识体系中,都或多或少跟内存结构有一定的关系: 比如垃圾回收回收的就是内存、类加载加载到的地方也是内存、性能优化也涉及到内存优化、执行引擎与内存密不可分、类文件结构与内存的设计有关系,监控工具也会监控内存。所以内存结构处于 JVM 中核心位置。也是属于我们入门 JVM 学习的最好的选择

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值