JVM简述

news2024/9/29 5:28:43

    • JDK&JRE&JVM
    • JVM运行时内存结构图
          • 方法区
          • 堆区
          • 栈区
          • 程序计数器
          • 本地方法栈
    • JVM 的主要组成部分及其作用

JDK&JRE&JVM

在这里插入图片描述

JVM就是java虚拟机,一台虚拟的机器,用来运行java代码
但并不是只有这台机器就可以的,java程序在运行时需要依赖系统的类库,那么加上这些类库,就会形成完整的运行环境,我们称为JRE
对于开发人员,我们还需要一些编写代码的各种编译工具,加上这些工具,就会形成我们的JDK,也就是java开发工具包

JVM运行时内存结构图

在这里插入图片描述
方法区和堆区是所有线程共享的
栈区、程序计数器、本地方法栈是线程独立的,也就是说每个线程在里面都有独立的区域,它们不共享

方法区

存储类的信息

堆区

新生代(伊甸区、幸存者区、幸存者区)、老年代

栈区

每个线程开辟独立栈,栈帧中包含局部变量表,操作数栈等等

程序计数器

使用地址对字节码指令

其实就是PC寄存器,通过它来记录程序运行的一条一条的指令,在内存里找到该指令,并执行,通过不断修改寄存器里面的内容,就可以定位不同的指令,找到该指令在内存里面的位置,并执行

本地方法栈

跟java栈类似,针对C等语言的本地方法栈

JVM 的主要组成部分及其作用

JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)Native Interface(本地接口)

  • Class loader( 类 装 载 ): 根 据 给 定 的 全 限 定 名 类 名 ( 如 : java.lang.Object)来装载class文件到Runtime data area中的methodarea。
  • Execution engine(执行引擎):执行classes中的指令。
  • Native Interface(本地接口):与native libraries交互,是其它编程语言交互的接口。
  • Runtime data area(运行时数据区域):这就是我们常说的JVM的内存。

作用:
首先,通过类加载器会把 Java 代码转换成字节码;

其次,运行时数据区再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行;

于是,需要特定的命令解析器执行引擎,将字节码翻译成底层系统指令,再交由 CPU 去执行;

最后,此过程中需要调用其他语言的本地库接口来实现整个程序的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/803675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux权限提升:自动化信息收集

在本文中,我们将介绍在基于Linux的设备上进行初始访问后,可用于后渗透阶段漏洞利用和枚举的一些自动化脚本。 ** 介绍** 大多数时候,当攻击者攻击Linux操作系统时,他们将获得基本的Shell,可以将其转换为TTY Shell或m…

apple pencil值不值得购买?便宜的电容笔推荐

如今,对ipad使用者而言,苹果原装的Pencil系列无疑是最佳的电容笔。只是不过这款电容笔的售价,实在是太高了,一般的用户都无法入手。因此,在具体的使用过程中,如何选用一种性能优良、价格低廉的电容笔是非常…

Jmeter+验证json结果是否正确小技巧

前言: 通过sql语句或者返回的参数,可以在查看结果树返回的结果中,用方法先跑一下验证是否取到自己想要的值 步骤: 1、添加查看结果树 2、跑出结果 3、在查看结果树中 text改成选Json Path Tester 返回的值如果是列表里面的字符…

英码“深元”智慧工厂解决方案,提升管理效率,开启生产新时代!

智慧工厂,作为数字化和智能化的代表,深度融合了边缘计算、物联网、大数据分析和人工智能等技术,为传统工厂管理和生产带来了深刻的影响。英码“深元”智慧工厂解决方案,利用智能终端——“深元”AI工作站实时采集传输现场视频&…

8个特别好用的矢量图软件,一定要收藏

在设计工作中,矢量图软件能帮助设计师绘制出具有更高质量,更高清晰度的图画作品。本文整理了市面上8个好用的矢量图软件,一起来看看吧! 1、即时灵感 即时灵感是基于云端运行的矢量图软件,完全可以满足运营、产品经理…

荣登央视,智慧集中供冷,未来空调技术的新趋势

我们上了央视了!这不是开玩笑也不是蹭热度,最近我们做的一个项目被作为正向报导了,可以说是一件引以为傲的事情,具体涉及的项目,就是作为未来空调技术的集中供冷系统。 今年夏天,想必大家也都感觉到了&…

【phpstudy】Apache切换Nginx报错nginx: [emerg] CreateFile()

【phpstudy】Apache切换Nginx报错nginx: [emerg] CreateFile() 报错内容如下: nginx: [emerg] CreateFile() “D:/phpstudy_pro/WWW/www.xxx.com/nginx.htaccess” failed (2: The system cannot find the file specified) in D:\phpstudy_pro\Extensions\Nginx1.…

【WebGIS实例】(10)Cesium开场效果(场景、相机旋转,自定义图片底图)

效果 漫游效果视频: 【WebGIS实例】(10)Cesium开场效果(场景、相机 点击鼠标后将停止旋转并正常加载影像底图: 代码 可以直接看代码,注释写得应该比较清楚了: /** Date: 2023-07-28 16:21…

接口自动化如何做?接口自动化测试- 正则用例参数化(实例)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 我们在做接口自动…

ElasticSearch基本使用--ElasticSearch文章一

文章目录 官网学习必要性elasticsearch/kibana安装版本数据结构说明7.x版本说明ElasticSearch kibana工具测试后续我们会一起分析 官网 https://www.elastic.co/cn/ 学习必要性 1、在当前软件行业中,搜索是一个软件系统或平台的基本功能, 学习Elastic…

树莓派微型web服务器——阶段设计报告

文章目录 1. 需求分析1.1 功能需求1.1.1 访问需求1.1.2 自定义域名需求1.1.3 下载公共文件需求1.1.4 用户体验需求 1.2 技术需求1.2.1 操作系统指令1.2.2 技术栈1.2.3 内网穿透 1.3 性能需求1.3.1 处理能力1.3.2 内存1.3.3 存储空间 2. 可行性分析2.1 硬件方面2.2 软件方面 3. …

Linux近两年高危漏洞修复过程记录

一、背景 2023年8月份,面对即将到来的“大运会”、“亚运会”,今年的例行安全护网阶段也将迎来新的挑战和时刻,为此相关部门发布了国家级实战攻防演练已进入紧急「备战」时刻!这里我们主要说一下Linux OS层面的漏洞处理&#xff0…

STM32 CubeMX 定时器(普通模式和PWM模式)

STM32 CubeMX STM32 CubeMX 定时器(普通模式和PWM模式) STM32 CubeMXSTM32 CubeMX 普通模式一、STM32 CubeMX 设置二、代码部分STM32 CubeMX PWM模式一、STM32 CubeMX 设置二、代码部分总结 STM32 CubeMX 普通模式 一、STM32 CubeMX 设置 二、代码部分 …

数据库数据恢复-Syabse数据库存储页底层数据杂乱的数据恢复案例

数据库恢复环境: Sybase版本:SQL Anywhere 8.0。 数据库故障: 数据库所在的设备意外断电后,数据库无法启动。 错误提示: 使用Sybase Central连接后报错: 数据库故障分析: 经过北亚企安数据恢复…

【无标题】深圳卫视专访行云创新马洪喜:拥抱AI与云原生,深耕云智一体化创新

人工智能(AI)是引领新一轮科技革命和产业变革的重要驱动力。因此,深圳出台相关行动方案,统筹设立规模1,000亿元的人工智能基金群,引导产业集聚培育企业梯队,积极打造国家新一代人工智能创新发展试验区和国家…

select、epoll 的快速核心理解

一、 select 最low的就是在用户代码中自旋实现所有阻塞socket的监听。但是每次判断socket是否产生数据,都涉及到用户态到内核态的切换。 于是select改进:将fd_set传入内核态,由内核判断是否有数据返回; 然后最low的只能使用自旋…

实验室功率放大器怎么选择参数

实验室功率放大器是一种用于实验室研究和测试的电子设备,其主要功能是将微弱电信号放大到足够的水平以便进行研究和分析。在选择实验室功率放大器时,需要考虑多个参数,以便确保符合实验的需求。 以下是一些常见的实验室功率放大器参数和选择方…

HAL库—定时器Timer使用及PWM

文章目录 与51单片机定时对比stm32定时器工作原理:定时器分类: STM32F103C8T6定时器资源:定时器计数模式: 定时器时钟源:定时器溢出时间计算公式:PWM资源PWM输出模式:PWM配置(Cube M…

多线程(Java系列6)

目录 前言: 1.什么是线程池 2.标准库中的线程池 3.实现线程池 结束语: 前言: 在上一节中小编带着大家了解了一下Java标准库中的定时器的使用方式并给大家实现了一下,那么这节中小编将分享一下多线程中的线程池。给大家讲解一…

ucore lab6 调度管理机制

练习0:填写已有实验 具体更改的地方如下: proc.c 中alloc_proc新增加内容 proc->rq NULL;list_init(&proc->run_link);//proc->run_link.next proc->run_link.prev NULL ;proc->time_slice 0;proc->lab6_run_pool.left pro…