技术理论-【JVM】-01-基础概念

学习背景

JVM(Java Virtual Machine)是运行java程序的程序。

为什么要用java语言来开发程序呢?

  1. 面向对象语言;
  2. “一次编译,到处运行”(跨平台);
  3. 自动垃圾回收机制;
  4. 丰富的第三方工具库
    在这里插入图片描述

计算机只认识机器指令,但是机器指令写的程序可读性非常差,于是人们发明了高级语言(比如C、C++、JAVA等),使得程序的可读性更高和编程更容易。但是高级语言程序需要增加编译工作,将程序翻译成机器语言。由于操作系统不一样,程序就需要编写成各种OS版本才能运行,增加了太多额外开发工作。JAVA通过JVM的方式,让JAVA程序编译成统一的class文件,然后让JVM运行的时候翻译成对应的OS机器指令,实现了程序跨平台的特性。
在这里插入图片描述

java的一切优点都是基于JVM的基础上,但是JVM也会带来很多相关的问题(比如内存溢出、效率低下等),所以了解JVM的运行原理才能真正的掌握好java语言,才能开发优秀的java程序。

JVM的核心组件

JVM由7大部分组成。

  1. 类加载子系统;
  2. 方法区;
  3. 堆;
  4. 栈;
  5. PC(Program Counter)寄存器;
  6. 执行引擎;
  7. 垃圾回收器;
    在这里插入图片描述

类加载子系统:读取class信息和解析相关引用class(找到class文件)。
方法区:保存class文件信息。
:存放java对象,就是new Object()的时候在堆里面创建对象。
:存放java程序线程信息,如局部基础类型变量,方法返回信息等。
PC(Program Counter)寄存器:存放java线程当前运行指令信息。
执行引擎:将class指令翻译成对应OS的机器指令并执行指令。
垃圾回收器GC:负责回收堆内存空间。

真正需要关心的部分是方法区的大小、栈的大小、堆的大小和管理机制、GC垃圾回收器的回收算法和回收器类型。
其他的组件都是固定底层机制,无法通过参数修改。

java还可以调用一些本地OS的程序,所以JVM中堆和栈都会有一个特殊的本地内存和本地方法栈的概念。不过这种方式并不常用,暂时不用关心。

JVM安装

JVM是通过安装JDK来完成的,不是独立安装JVM。

在这里插入图片描述

  1. JVM是java虚拟机;
  2. JRE是java的运行环境;
  3. JDK是java的开发环境;

JAVA程序执行过程

首先编写程序java文件,然后编译成class文件,最后运行class文件。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

通过java命令运行class文件,JVM先加载class文件,将class信息存放在方法区,然后找到程序入口函数并生成主线程,每个线程对应一个私有栈和PC,如果有new操作就会在堆中创建对象,如果还开启了子线程,会创建子线程的私有栈和PC。
当前运行线程的PC将被执行引擎运行。垃圾回收器会自动处理堆中无效对象。

总结

  1. JVM有7大组件;
  2. 方法区、堆、栈、垃圾回收器可以通过参数调整;
  3. JVM不能单独安装,需要安装JDK;
  4. java程序以线程的方式运行;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值