JAVA及JVM的运行过程

JVM-java文件到运行在JVM过程 JVM官方介绍: 1)JVM是JAVA平台基石,负责屏幕操作系统跟硬件,保护我们的程序免受恶意攻击。 2)JVM是虚拟的计算机,独立的指令集及不同运行内存区域。 3)JVM对JAVA的语法不感冒,JVM只在乎Class File 字节码文件。 4)JVM能够运行有效的Class file的文件,JVM是一个多语言平台 java文件到运行在JVM过程如图下: java到Class过程: javac解析过程:词法分析器->语法分析器->语法树/抽象语法树->语义分析器->注解抽象语法树 阅读详情

VM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。

编译器负责把Java程序转成Class文件,方便Jvm来读取它.

Jvm是java虚拟机,其实它就是解释器,把Class文件中的命令转成某种平台的命令,比如把Java命令转成Windows下的命令,然后Java程序就执行了.

这里和大家简单分享一下JAVA和JVM运行的原理,Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行,而JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器

JAVA和JVM运行的原理

1.Java语言运行的过程

Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行。

 

 

 

 

也相当与

 

 

 

 

注:JVM(java虚拟机)包括解释器,不同的JDK虚拟机是相同的,解释器不同。

2.JVM:

JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。

java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

JVM执行程序的过程 :

I.加载。class文件

II.管理并分配内存

III.执行垃圾收集

JRE(java运行时环境)由JVM构造的java程序的运行环境 


欢迎工作一到五年的Java工程师朋友们加入Java技术交流:866865133群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
[完]
喜欢小编轻轻点个关注吧!
 

 

 

 

低电压高效率能源管理芯片BQ25570的基本用法及应用电路实例 BQ25570是一款低电压、高效率、集成了可编程功率追踪(MPPT)功能、BOOST升压功能和BUCK降压功能的综合型能源管理电路。冷启动工作电压为330mV,热启动工作电压为100mV。主要应用于温差发电片TEG、压电、摩擦发电和太阳能板的能量收集,也可以用于人体可穿戴自取能传感设备的能量管理。本文主要介绍了BQ25570相关参数计算、MPPT功能验证、工作逻辑和应用场景,并设计了一版测试电路,给出了不同应用需求的电路配置建议。 阅读详情

相关推荐

BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半

BioEmu 是微软推出的生成式深度学习系统,可在单个 GPU 上每小时生成数千种蛋白质结构样本,支持模拟动态变化、预测热力学性质,并显著降低计算成本。

士多啤梨先生の博客 1100

java程序在JVM中是如何运行的?

JVM的内存模型 JVM内存是人为根据不同内存空间的存储特点以及存储的数据进行划分的。 程序计数器:当前线程所执行的字节码行号指示器 本地方法栈:为虚拟机使用的native方法服务 Java虚拟机栈:描述Java方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法出口等信息。每一个方法会创建一个栈帧,栈帧存放了当前方法的数据信息(局部变量),当方法执行完毕栈帧就被销毁。 Java堆:被所有线程共享的一块内存区域,在虚拟机启动时创建,所有的对象实例

weixin_42212173的博客 1631

OpenHarmony实战开发-如何实现文件分布式同步编辑

在分布式文件场景中,分布式设备管理包含了分布式设备搜索、分布式设备列表弹窗、远端设备拉起三部分。首先在分布式组网内搜索设备,然后把设备展示到分布式设备列表弹窗中,最后根据用户的选择拉起远端设备。两台设备组网的分布式场景是工作中常常需要的。这样的分布式场景有助于加快工作效率,减少工作中的冗余,本例将为大家介绍如何实现上述功能。​ (2)订阅分布式数据变化:通过this.distributedObject.on(‘status’, this.statusCallback)监听分布式数据对象的变更。

2401_82546228的博客 754

Java程序执行流程(JVM)

首先了解JVM架构:https://mp.youkuaiyun.com/console/editor/html/107181269

消极的人永远是对的,积极的人选择勇往直前 1136

Hyper-V集群部署指南

工欲善其事,必先利其器。搭建一个方便管理的服务集群,是分布式学习很重要的环境。 目前流行的虚拟机产品主要为Vmware 和 win10自带的Hyper-V(win10家庭版无此功能),网上关于Vmware的教程更多,显然它更容易上手,但Hyper-V也算是一个很不错的产品,这里记录一下我的学习过程: 目录 Hyper-V的安装 服务集群的搭建 虚拟机的网络通信 NAT网络的搭建 端口映射 Linux的静态IP 虚拟机的自启动问题 Hyper-V的安装 也不能算说是安装,如果你的win1

Swing 6925

综合能源系统多时间尺度优化调度!诸多创新点让你抓住审稿人的心!

主要介绍综合能源系统的设备组成结构,并针对屋顶光伏系统、冷-热-电联供系统中的燃气轮机、燃气锅炉、光伏溴化锂制冷机、卡琳娜余热发电、中央空调系统,以及外网交互系统的配电网与天然气管网交互关系进行数学建模。1) 源-荷-储协同调度:研究屋顶光伏、燃气轮机、燃气锅炉等源侧设备,中央空调、电-热-冷负荷、可平移电负荷、可削减温控负荷等负荷侧资源,以及储能系统、电动汽车等储能侧设备的协同调度,以提高风光消纳能力,满足社会能源需求。通过电转热、电转冷、电转气等多能耦合方式,可进一步促进可再生能源的应用与发展。

weixin_48747334的博客 1490

Java --- JVM编译运行过程

Java程序的编译和运行涉及到多个阶段和不同的组件,最重要的是Java虚拟机(JVM)的角色,它在程序运行时负责执行字节码。理解Java程序的编译、运行流程及其如何与JVM交互是掌握Java开发的基础。

记得开心一点嘛的博客 1662

STM32CubeMX定时器配置

因为只有当 CH2 处于 输入模式 时,硬件才能把这根脚送进滤波器(TI2FP2通道之前要滤波),再生成 TI2FP2 这条支路供 Slave-Mode 控制器使用,也就是说TI2FP2 并不是“独立存在”的,但在CubeMX配置时:如下图,我们只设置Slave Mode和TI1FP1,之后,CH1就自动配置为 Input Capture 了,下图发现,Channel1只能 Input Capture 或者Disable。哪来的主定时器和从定时器呢?把待测 PWM 的高电平当“门”,连接到ETR。

2402_89015641的博客 3188

JVM 运行流程、类加载、垃圾回收

由于 JVM 的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现,因此在任何一个确定的时刻,一个处理器 (多核处理器则指的是一个内核) 都只会执行一条线程中的指令。因此为了切换线程后能恢复到正确的执行位置,每条线程都需要独立的程序计数器,各条线程之间计数器互不影响,独立存储。我们就把类似这类区域称之为 “线程私有” 的内存。这里的这个栈,其实不是只有一个,有很多个!!每个线程有一个,jconsole 查看 java 进程内部的情况,就可以看到所有的线程。

1226 1536

【ESP 保姆级教程】玩转emqx数据集成篇④ ——数据桥接之HTTP服务

主要是学习数据桥接功能以及构建自己的http服务器,这是一个非常有用的功能。包括各种传感器上报基本上都需要数据桥接功能支持,所以还是希望认真学习这一块开发,然后结合数据库存储等等知识点进行进一步学习。

单片机菜鸟哥的博客 1307

循环神经网络(RNN)原理及BPTT算法

因循环神经网络基于ANN之上,理解ANN有助于理解RNN,所以阅读此文,建议先阅读。

L 1769

Java程序运行与JVM

本文介绍了Java程序的运行过程、类加载器的工作机制、自定义类加载器的实现、JVM内存模型以及垃圾回收算法与垃圾收集器。详细讲解了编译、链接、加载三个阶段,类加载器的双亲委派模型,自定义类加载器的实现方法,JVM内存模型中的方法区和堆,以及垃圾回收算法(如标记复制、标记清除、标记整理)和不同垃圾收集器(如Serial GC、Parallel GC、CMS GC、G1 GC)的特点与适用场景。

Jeverall的博客 1127

YOLO11改进策略【独家融合改进】| RCSOSA + SPD + WFU

SPD-Conv是一种新的 CNN 构建模块,用于替代传统 CNN 架构中使用的步长卷积(strided convolution)和池化(pooling)层,它由空间到深度(Space-to-depth,SPD)层和非步长卷积(non - strided convolution)层组成。WFU模块通过小波变换的频率分解与跨尺度融合机制,解决了传统上采样过程中的混叠和细节丢失问题,实现了高效、高保真的面部细节重建。

Limiiiing的博客 454

jvm学习 java代码的运行过程

系统性学习jvm请点击jvm学习目录 前言 在之前,我们讲了java内存布局,讲了垃圾收集,将了字节码文件,其实这些东西都很抽象,看了之后也很难和具体我们写的代码相联系起来,相信很多人其实都更关心自己的代码是如何运行的。希望对java代码的运行有一个直观的了解。 那么本篇博客就对java代码的整个运行过程进行一个简单的介绍,让读者对jvm能有一个更清晰的把握,不至于一上来就懵逼。 从java代码到运行 下面我用一个例子来介绍java代码从诞生到运行的过程吧。 首先我们开始编写java代码,为了方便,编写个比

或左的博客 422

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java运行过程及JVM详解

1.运行步骤 源代码文件(.java)------->字节码文件(.class)-------->结果 第一步由Java编译器完成(javac.exe) 第二步由JVM完成(java.exe) 2.JVM的两种机制 ①类装载子系统:装载具有适合名称的类或接口 类装载子系统也可以称之为类加载器,JVM默认提供三个类加载器: 1、BootStrap ClassLoader :称之为启动类加载器,是最顶层的类加载器,负责加载JDK中的核心类库,如 rt.jar、resources.jar、charse

qq_40891322的博客 715

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java jvm内存模型 程序在内存中运行过程

向南的博客 302

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java的class文件在jvm运行时数据区的过程

今天在学习类加载的过程的步骤时感觉还是有点难度的,写个帖子记录一下 jvm运行时数据区图: 本地方法栈(线程私有) 登记native方法,在Execution Engine执行时加载本地方法库 程序计数器(线程私有) 就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码), 由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记。 方法区(线程共享) 类的所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义。简单说,所有定

过于丰富,无法简介 674

java jvm运行和类加载全过程

• 为什么研究类加载全过程? – 有助于了解JVM运行过程 – 更深入了解java动态性,(解热部署、动态加载),提高程序的灵活性。 • 类加载机制 – JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成 JVM可以直接使用的Java类型的过程。 – 加载 • 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一...

u014248032的博客 1596

java程序运行的过程以及JDK、JRE、JVM的区别与联系

本文讲述了java程序运行的过程以及JDK、JRE、JVM的区别与联系

SSS4362的博客 463

<Java虚拟机> java中类的内存结构以及虚拟机JVM的运行过程

如图 java原码存储在硬盘上 运行代码时 虚拟机jvm在内存中开辟一块空间 这个空间分为 栈内存、堆内存、和(存储区)方法区 存储区里的方法区就是方法的 方法属于类 所以jvm就在方法区映射了 硬盘中的源文件person.class Person p = new Person(); 我们知道变量 p 是存储在栈内存中 里面存的是一串地址 地址的引向就是 new 出来的Person在堆内存中 然后...

吕氏春秋i 536

JAVA虚拟机(JVM)的运行过程

JAVA虚拟机(JVM)的运行过程   讲师:张孝祥  文档整理:符亮JAVA编译程序(JAVAC.EXE)将JAVA源程序(*.JAVA)翻译为JVM可执行代码-JAVA字节码(JAVA BYTECODE)这一编译过程同C/c++的编译有些不同,当C编译器编译成一个对象的代码时,该代码是为在某一特定硬件平台而产生的。因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏

JAVA茶艺馆 1725

JVM 学习笔记-java程序编译和运行的过程

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程. Java程序从源文件创建到程序运行要经过两大步骤: 1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。 因为java程序既要编译也要经过JVM的解释运行,所以说Java被称为半解释语言.下面通过以下这个java程序,来说明java程序从编译到最后运行的整个流程。代码如

凡  尘 3091

linux java运行class文件_jvm学习java文件运行过程

汇编汇编的目的是把汇编语言转为机器语言。链接链接是要解决目标文件之间的互相依赖关系,当a文件中的aa方法中调用了b文件的bb方法时,在汇编完成后,a文件的bb方法并没有准确的内存地址,链接后会转换为虚拟地址,虚拟地址可以依据一定的规则转换为实际地址,即可以运行时找到该方法。编译过程一个.java程序要想被执行,首先需要编译器将高级的.java程序文件编译成.cla...

weixin_39883286的博客 512

Java基础 -- java 运行过程及跨平台原理,JDK,JVM,JRE区别

java基础 – java 运行过程及跨平台原理,JDK,JVM,JRE区别 编写期: 是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。 编译期: 是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件 运行: 是指使用 Java 解释器将字节码文件翻译成机器代码,执行并在控制台显示结果。 一般i...

寿春 593

class转java_jvm系列java文件运行过程

汇编汇编的目的是把汇编语言转为机器语言。链接链接是要解决目标文件之间的互相依赖关系,当a文件中的aa方法中调用了b文件的bb方法时,在汇编完成后,a文件的bb方法并没有准确的内存地址,链接后会转换为虚拟地址,虚拟地址可以依据一定的规则转换为实际地址,即可以运行时找到该方法。编译过程一个.java程序要想被执行,首先需要编译器将高级的.java程序文件编译成.cla...

weixin_42129005的博客 259

java栈的运行原理_JVM运行原理及Stack和Heap的实现过程

Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行,而JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。一、JVM原理1、JVM简介:JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和...

weixin_29822105的博客 522
上一篇: 面试---关于jvm的组成
下一篇: Mysql---关于SQL的JOIN
javaQQ群 866865133
博客等级 码龄8年 59粉丝 309原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值