JVM虚拟机概念

【JVM】Java虚拟机中的锁概念 适应性自旋 (adaptive spinning) 在JUC中我们经常会用到自旋锁,什么是自旋锁呢? 让当前线程进行自旋(相当于在while语句中不停的执行去获取资源),如果在自旋完成后前面锁定同步资源的线程已经释放了锁,那么当前线程就可以不必阻塞而是直接获取同步资源,从而避免切换线程的开销,这就是自旋锁。 通过对自旋锁的理解我们大概知道了其工作方式,虽然自旋锁是非阻塞的,但是并非所有情况自旋锁都是一种最优解。自旋等待虽然避免了线程切换的开销,但它要占用处理器时间(因为线程自旋相当于一直在wh 阅读详情

JVM虚拟机概念

前言

其实我一直以来都对jvm虚拟机会比较有点迷,处于大概有一点概念但是有不清楚到底是什么,所以呢,就找了点资料来学习,这篇博客就大概讲讲JVM虚拟机!

jvm虚拟机

JVM虚拟机怎么来的
我们学习Java的应该都知道一句话,Java是面向对象的语言,而且它是跨平台的,这个跨平台嗯是什么意思呢?

答:我们的计算机只认识0和1,我们不管用什么编码语言都需要通过编译器将我们所说的代码转换成计算机认识的0或者1组成的机器语言,程序才能执行。直到现在我们还是这样子,我们的程序是运行在计算机上,计算机是有操作系统的,面对不同的厂家不同操作系统我们都需要根据具体的需求 进行编译,这样子做了太多的重复性工作。所以‘与平台无关性’这一理想就出现了,在这种理想下虚拟机也就应运而生。

(悄悄话:也就是说Java是在虚拟机上运行)

也就达成了Java能够在不同的环境(主要是操作系统)下运行。它首先将源代码编译成二进制字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。

在这里插入图片描述

再来举个小栗子,我们一般新建项目都是新建一个Class,然后在里面写Java代码:
在这里插入图片描述
写一个输出语句:
在这里插入图片描述
输出结果:
在这里插入图片描述
我们知道执行的命令这是java是一个包装好的命令,这个命令执行了就是启动一个jvm虚拟机。然而启动虚拟机是不够的。

因为jvm不知道我该运行什么。所以要有一个系统来把本地的.class里面的2进制文件加载进虚拟机中。

把文件加载进来我需要开辟一个地方来存放这些东西吧。

把东西存放了呢?jvm需要知道 你到底让我干什么啊。这时候就需要解析文件,既然虚拟机可以使用了,那么按照程序所写的执行完了。

东西岂不是还存在‘一个地方‘中,那么长久下来机器还不撑爆了,所以需要定时吧不用的都删除,以保证内存。

通俗来讲这就是虚拟机做的事情。

加载进虚拟机——类加载器子系统
一个地方——运行时数据区域(堆 栈)
解析文件——执行引擎子系统
定时删除——垃圾收集子系统

以上就是jvm的基本东西,他们算在一起才叫jvm。

这里有一个鲜活的比喻:
大家都经常吃饭。下面我描述下吃饭的过程。
吃饭的时候,饭不会自己跑到嘴里,
所以 ‘类加载器子系统’负责吧饭送到你的嘴中,
经过咀嚼 饭到了胃里,也就是‘运行时数据区域(堆 栈)’中存着,
经过肠胃 也就是‘ 执行引擎子系统’的消化,
我们吸收营养来做日常的开销,消化完了产生了废物,
这时候也就是‘垃圾收集子系统’排出体外。
jvm就是不断的重复这些过程来执行程序,从而保证程序的正常运行。

总结

个人感觉jvm还是能搞懂就搞懂吧,之前我一直只有一个大概的糊糊的概念,经过百度啊啥的搞懂了也挺好的,更容易便于理解以后的学习之路。

深入理解JVM虚拟机第二篇:虚拟机概念和JVM整体架构以及字节码的执行路线 本文介绍了虚拟机的概念,以及虚拟机在软件与操作系统和硬件之间的地位,还介绍了JVM的整体架构和代码的简单的执行过程。 阅读详情

相关推荐

104报文解析工具

可选择包含报文的文本文件或日志文件进行解析,可选择按条数范围或时间范围,输出结果可以在报文解析显示区,也可以输出到文件。可以对文本内容的报文文件进行高级分析,包括遥信遥测等通讯数据的具体信息,通讯帧的统计,通讯次数的统计,各种错误的分析,报文的定位功能,传输的文件具体内容等。输入完成后点击工具栏的解析报文按钮或使用右键菜单的解析就可以对报文进行解析。在报文输入区输入待解析报文并解析后,解析结果就显示在报文解析显示区和报文定位展示区及报文定位条目区。当有多条报文解析后,可以通过报文列表树具体定位某条报文。

XZHOUMIN的博客 5948

JAVA高阶私房菜:JVM虚拟机核心概念及参数微调实验

JVM迄今为止都是程序员老生常谈的话题,实话说我每一次研究探索完后都会忘一次,但好在每次都有新的见解,再加上JDK每迭代更新一版都会有新的特性和改良,对此,我们就当温故知新,增进新的理解,弥补不足,在这里我们不讲大而全的知识,也不会讲老旧的知识点,主要围绕在工作和面试中最高频的点,聚焦于JDK9之后的关键内容进行剖析。

猫步轻移,以学求知。余于此方寸之地,如猫观鼠,细察技艺所得,思维所悟。灵思如猫之警觉,日积月累,终成智海; 1487

RK3588工业开发板实战:如何用IgH EtherCAT主站精准控制伺服电机(附完整代码)

本文详细介绍了如何利用RK3588工业开发板和IgH EtherCAT主站实现伺服电机的精准控制。从硬件选型、实时内核配置到EtherCAT主站安装和核心代码实现,提供了一套完整的工业自动化解决方案,特别适合需要高精度运动控制的场景。

pca5navigator的博客 972

JVM调优浅谈

 1.数据类型     java虚拟机中,数据类型可以分为两类:基本类型和引用类型。     基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值。     “引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。     基本类型包括:byte、short、int、long、char、float、double、boolean...

weixin_33918357的博客 321

告别地图偏移!手把手教你用MapOnline V1.2在ArcGIS里加载无偏谷歌影像和历史影像

本文详细介绍了如何使用MapOnline V1.2插件在ArcGIS中加载无偏谷歌影像和历史影像,解决GIS工程师长期面临的地图偏移问题。通过三步安装配置、无偏影像加载和时空分析功能,提升地理信息数据的精确度和工作效率,特别适用于城市规划、环境监测等场景。

weixin_29252171的博客 232

全网最全的AItium Designer 16下载资源与安装步骤

Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。...

WQ的博客 1万+

JVM虚拟机概念了解

虚拟机就是一台虚拟的机器,可以分为系统虚拟机和程序虚拟机两种,系统虚拟机是一个完成的操作系统的软件平台; 程序虚拟机就是为 执行单个计算机程序而设计的,比较著名的就是java虚拟机。 常用的系统虚拟机 :visual Box、vmware; 常用的 java程序虚拟机: classic、hotsport等 java虚拟机基本概念了解 类加载器: 负责从文件系统中或者网络中加载类...

pengjwhx的博客 285

低代码Agent开发框架使用指南(二)—Coze平台核心功能概览

本篇分享系统介绍了字节跳动推出的低代码智能体开发平台Coze。Coze以免费易用、多模型支持和便捷的跨平台发布为核心优势,显著降低了智能体开发门槛。文章详细解析了平台的六大核心功能:扩展能力边界的插件系统、增强认知的知识库、结构化数据管理的数据库、可视化图像处理的图像流、实现复杂逻辑编排的工作流,以及处理复杂任务的多智能体协作机制,全面展现了Coze平台的强大能力。

weixin_42782643的博客 1358

虚拟机的概念

这里我给大家先普及一下虚拟机的概念。在论坛里很多机友不清楚虚拟机是什么。      “虚拟机”这个概念在实际应用中有两种语境。第一种是“虚拟主机”的概念,第二种是“运行环境”的概念。这两种概念是不同的。   1. “虚拟机”在作“虚拟主机”讲的时候,指的是操作系统内安装另一个操作系统。你如在Windows里,你可以装一个VMWare,然后在VMWare里安装一个Ubuntu Linux。这就是...

qingfeng_博客 6205

AD22里面封装修改后,同步到PCB图里面

【摘要】本文介绍了Altium Designer 22中同步更新元件封装的三种方法:1)从PCB库直接更新:在PCB库面板右键选择"Update PCB With[封装名]";2)通过原理图标准更新:使用Design->Update PCB Document菜单;3)在PCB编辑器中验证更新:通过Tools->Update From PCB Libraries菜单。所有方法最终都需通过ECO(工程变更订单)确认变更,建议执行前仔细核对变更内容。这些方法适用于AD22及早期版本

whm128的博客 1758

ARM CoreLink 系列 5.1.1 -- CI-700 System Address Map 】

所有的CHI 命令都包含一个 Source ID 和 Target ID, 其中 Source ID 可以来自于 RN Node, Target ID 可以来自于HN node或者其他 SN node. 其中 Target ID 是通过 SAM解析传入的地址得到的。对于 CI-700中的所有 RN Node 中的 SAM 多会进行配置,因为RN Node 访问的是整个地址空间,不同的地址空间会有不同的属性(I/O, DRAM),所以会对RN SAM 配置多个不同属性的区域。

CodingCos的博客 771

jvm_虚拟机概念及组成部分

概念 虚拟机分类: 系统虚拟机:virtual box、vmare (运行整个系统) 程序虚拟机:java 虚拟机如HotSpot (运行单个程序) 基本结构 类加载子系统 负责从文件系统或者网络中加载class信息,加载的信息存放在一块称之为方法区的内存空间。、 方法区 存放类信息、常量信息、常量池信息、包括字符串字面量和数字常量等。 java堆 在java虚拟机启动的时候建立java堆,它是...

Ethe的博客 469

DC/DC开关电源学习笔记(十三)Buck-Boost升降压电路工作原理

Buck-Boost电路是一种能够实现输出电压高于或低于输入电压的DC-DC变换器,且输出电压极性与输入电压相反。它结合了Buck(降压)和Boost(升压)两种拓扑的特点,广泛应用于需要灵活电压调整的场合,如电池供电设备、LED驱动和工业控制系统。本文将从电路结构、工作原理、关键公式推导及实际应用等方面进行详细分析。

小幽余生不加糖 3504

jvm-虚拟机的基本概念

参考 尚硅谷:宋红康(b站视频) 一、虚拟机概念 1.1 虚拟机的基本概念 所谓虚拟机(Virtual Machine),就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。 大名鼎鼎的Virtual Box,VMware就属于系统虚拟机,提供了一个可运行完整操作系统的软件平台,还有一种是直接建立在硬件之上的,如exsi。pve等。 程序虚拟机的典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我

itman_cx的博客 551

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JVM虚拟机相关概念

JVM相关概念及GC调优

江韵的博客 615

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

jvm_虚拟机概念

1. 所谓虚拟机,就是一台虚拟的机器,他是一款软件,用来执行一系列虚拟计算机指令,虚拟机我们可以分为两大 块,一个叫系统虚拟机,还有一大块是程序虚拟机,系统虚拟机是什么概念呢,程序虚拟机又是什么概念呢,比如系统 虚拟机,比如大名鼎鼎的Visual Box, Vmare这两款都是咱们比较主流的系统级虚拟机, VBox可能用的少,但是 Vmare我现在就在用,你去阿里买它的云服务,它不是一个真...

Leon_Jinhai_Sun的博客 329

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java虚拟机(JVM)概念简介

虚拟机概述 所谓虚拟机(Virtual Machine)就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。 比较出名的系统虚拟机有Visual Box、VMware,他们是完全对物理计算机的仿真,提供一个可运行完整操作系统的软件平台。 Java虚拟机就是典型的程序虚拟机,他专门为执行单个计算机程序而设计的,在Java虚拟机中执行的指令我们称为Java字节码指令。 无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚拟机提供的资源中,比如j

qq_40837310的博客 1746

JVM基础概念-2常见的虚拟机

通过计数器找到最具有编译价值的代码,触发即时编译或者栈上替换;与解释器协同工作,在最优化的程序响应时间与最佳执行性能中取得平衡。世界上第一款商用java。,JDK1.4时被完全淘汰。

qianjian21cmj的专栏 211

JVM概念及虚拟机栈——JVM(1)

一.Java从编译到运行的过程 1.图示(JDK,JRE,JVM三者关系) java文件经过javac的编译后形成了class字节码文件,然后送入JVM在JRE的类库的帮助下进行类加载。从这张图也可以看出JDK,JRE,JVM之间的关系。 2.三者关系 JVM: JVM只是一个翻译,把Class翻译成机器识别的代码,但是需要注意,JVM 不会自己生成代码,需要大家编写代码,同时需要很多依赖类库,这个时候就需要用到JRE。 JRE: JRE是什么,它除了包含JVM之外,还提供了很多的类库(就是我们说的ja

Android小白 330

Java虚拟机(JVM)基础概念详解

JVM(Java虚拟机)是Java跨平台特性的核心,负责执行字节码文件。其核心架构包括线程私有的程序计数器、虚拟机栈和线程共享的堆、方法区。堆存放对象实例,是垃圾回收的主要区域;方法区存储类信息;栈用于方法执行。JVM通过类加载、解释执行和即时编译(JIT)实现高效运行,自动管理内存分配与回收,使开发者无需手动处理内存。这种"一次编写,到处运行"的设计是Java生态的基石。

2401_87398486的博客 1207

【JVM虚拟机】- 01JVM概念、内存结构简介

JVM概念以及内存结构简介 一、初识JVM 概念:Java Virtual Machine,Java程序的运行环境 优点: ​ 一次编写,到处执行 ​ 自动内存管理,垃圾回收机制 ​ 数组下标越界检查 比较:JVM、JRE、JDK 二、内存结构 整体框架: 2.1 程序计数器 概念:用于保存JVM中下一条指令的地址 特点:1.线程私有:如果当前线程时间使用完毕,会去执行其他线程的代码, 执行完后,会再次返回当前线程执行下一条指令 ​ 2.不存在内存的溢出 2.2 虚拟机栈 概

zyya075的博客 347

【Java】JVM虚拟机(基本概念、类加载机制)

摘要:JVM是Java程序运行的核心组件,实现"一次编写,多处运行"的跨平台特性,包含类加载子系统、运行时数据区等模块。类加载机制分为加载、验证、准备、解析、初始化五个阶段,通过双亲委派模型由启动类、扩展类、应用类加载器分层加载。主动引用(new、静态方法/变量、反射、子类初始化)会触发类初始化,而被动引用(数组创建、子类引用父类静态变量)不会。自定义类加载器可扩展特殊加载需求。

m0_74244697的博客 1129

Java虚拟机:Jvm概念和原理详解以及GC机制的分析

推荐阅读: 我总结了72份面试题,累计3170页,斩获了30+互联网公司offer(含BATJM) 2020首战告捷,这份Java面试神技Plus版,让我成功拿到了阿里、京东、字节跳动等大厂offer 疫情之下,收到美团电话面试(成功拿下offer),附学习路线+刷题库 注:源代码就是.java文件,JVM字节码就是.class文件 1. Java 堆(Java Heap): (1)是Java虚拟机所管理的内存中最大的一块。 (2)在虚拟机启动的时候创建。堆是jvm所有线程共享的。 (3)

资料免费分享,点击名片 361

一文看懂Java虚拟机——JVM基础概念整理

1 基础概念 2 垃圾回收 3 虚拟机调优

来者无穷_ 177

Java虚拟机(JVM)-基本概念和规范(一)

基础知识篇-Java虚拟机(JVM)为什么要学习JVM认识JVMJVM是什么?JVM能做什么? JVM (Java Virtual Machine)(Java虚拟机) 为什么要学习JVM 面试需要 更深入理解JAVA语言 排查解决故障 性能调优 认识JVM JVM是什么? 通过软件模拟的具有完整硬件系统功能的 运行在一个完全隔离环境中的计算机系统 通过软件模拟Java字节码的指令集,是Java程序的运行环境 可以理解为是一个软件,运行字节码,从而实现运行程序 JVM能做什么? 通过Cla

weixin_32261917的博客 468

jvm虚拟机学习之路(概念及运行时内存区)

一个菜鸟程序员在经历了几年的开发工作之后突然感觉自己用到的和知道的关于程序的知识点真的很少,对于技术的了解也是太片面。于是决定从基层开始学起,因为没有基础知识的支撑,往后面学真的是越走越窄,最后就是越学越不明白了。后面逐渐认识到学习基础知识的重要性。我是一名java开发,但是我现在认识到无论是什么开发,都离不开 数据结构预算法、计算机组成原理、操作系统以及计算机网络相关的基础知识。...

weixin_39878226的博客 165
上一篇: easyUI数据表格的增删改
下一篇: jdk1.8下jvm虚拟机内存结构
Jiang呀
博客等级 码龄7年 16粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值