JVM与Java体系结构

一、前言:

Java语言和JVM简介:

Java是目前最为广泛的软件开发平台之一。

JVM:跨语言的平台

随着Java7的正式发布,Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序。 Java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的,它只关心"字节码"文件。也就是说Java虚拟机拥有语言无关性,并不会单纯地与Java语言"终身绑定",只要其他编程语言的编译结果满足并包含Java虚拟机的内部指令集、符号表以及其他的辅助信息,它就是一个有效的字节码文件,就能够被虚拟机所识别并装载运行。

字节码:

Java字节码指的是用java语言编译成的字节码,准确的说任何能在jvm平台上执行的字节码格式都是一样的,所以应该统称为jvm字节码。不同的编译器可以编译出相同的字节码文件,字节码文件也可以在不同的JVM上运行。Java虚拟机与Java语言并没有必然的联系,至于特定的二进制文件------Class文件格式有所关联。Class文件中包含了Java虚拟机指令集和符号表,还有一些其他的辅助信息

虚拟机与JVM介绍:

所谓虚拟机就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟计算机指令。大体上虚拟计算机可以分为系统虚拟机 和程序虚拟机 。程序虚拟机 的典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令成为Java字节码指令。无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚拟机提供的资源中。

Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成。JVM平台的各种语言可以共享Java虚拟机带来的跨平台性。优秀的垃圾回收器以及可靠的即时编译器。Java技术的核心就是Java虚拟机,因为所有的Java程序都运行在Java虚拟机内部。

Java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上机器指令执行。每一条Java指令,Java虚拟机规范中都有详细定义,例如怎么去操作数、怎么处理操作数以及处理结果放在哪里等。特点包括一次编译、到处运行、自动管理内存以及自动垃圾回收功能

JVM的位置:

JVM整体结构:

HotSpot VM是市面上高性能虚拟机的代表作之一,它采用解释器与即时编译器并存的架构

Java代码的执行流程:

相关推荐
小溪学编程12 小时前
从 C++ 的规范变迁看语言发展
jvm·c++·面试
晚安code14 小时前
JVM 类加载机制详解:双亲委派模型的原理、优势与三种打破方式
jvm
Joe_Wang516 小时前
【从0到1学习JVM · 21】既不浪费空间又没有碎片,标记整理算法到底慢在哪
jvm·学习·算法·垃圾回收·标记整理算法
Cheney Pan17 小时前
第4篇 Spring Boot 应用监控:Micrometer 与 JVM 指标
jvm·spring boot·后端·prometheus
Joe_Wang518 小时前
【从0到1学习JVM · 25】同样都要停顿所有线程,Parallel比Serial到底强在哪
java·jvm·学习·垃圾回收
wuminyu18 小时前
JVM虚拟线程的底层实现原理分析
java·linux·c语言·jvm·c++
wuminyu1 天前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
波力海苔夹心脆6751 天前
C# 值类型与引用类型详解:存储位置、赋值机制、参数传递、相等比较、装箱拆箱与常见陷阱
开发语言·jvm·经验分享·笔记·c#·.net
Joe_Wang51 天前
【从0到1学习JVM · 15】对象在堆里来回倒腾,究竟怎样才会进老年代?
java·jvm·学习·垃圾回收
小宋10211 天前
SQL + RAG 混合问答实战:结构化指标与文档证据如何统一路由
java·jvm·人工智能·sql