当前位置: 首页 > article >正文

JVM入门

1. JVM简介    
 

 * JVM是Java虚拟机,是Java应用程序运行的平台。  

 * JVM可以跨平台运行,因为Java源代码会被编译成平台无关的字节码。  

 * JVM由Java虚拟机规范(Java Virtual Machine Specification)定义。

2. JVM架构    

* JVM由三部分组成:Java虚拟机实现、Java虚拟机规范和Java虚拟机工具接口。
    
* Java虚拟机实现是实际运行Java程序的代码。    

* Java虚拟机规范定义了Java虚拟机的行为和功能。    

* Java虚拟机工具接口提供了一组工具来管理和监控Java虚拟机。

3. JVM内存管理    

* JVM内存管理包括堆、栈、方法区和本地方法栈。    
* 堆是Java程序中所有对象实例的存储空间。    
* 栈是每个线程的执行上下文,包括局部变量、操作数栈和方法调用信息。    
* 方法区存储已被加载的类信息、常量、静态变量以及即时编译器编译后的代码等数据。    
* 本地方法栈用于支持native方法的执行。

4. JVM执行引擎    

* JVM执行引擎负责执行Java字节码。    
* JVM规范定义了两种执行引擎:解释器(interpreter)和即时编译器(Just-In-Time compiler,JIT)。  
* 解释器将字节码逐条解释成指令并执行。    
* JIT编译器将字节码编译成本地代码,以提高执行速度。

5. class文件格式  

* class文件是Java程序的字节码文件,以二进制形式存储。    
* class文件包含三部分:魔数(magic)、版本号(version)和常量池(constant pool)。    
* 魔数是class文件的标识符,用于判断文件是否为有效的class文件。    
* 版本号表示class文件的版本,用于支持多版本的Java虚拟机。    
* 常量池包含程序中使用的常量信息,如字符串、类名、方法名等。


http://www.kler.cn/a/136937.html

相关文章:

  • 微信小程序 不同角色进入不同页面、呈现不同底部导航栏
  • No.1免费开源ERP:Odoo自定义字段添加到配置页中的技术分享
  • [Python机器学习]:Anaconda3实践环境安装和使用
  • Ubuntu20.04 交叉编译Qt5.15.15 for rk3588
  • 使用 Python 创建多栏 Word 文档 – 详解
  • 强大且灵活的终端工具Tabby的强大功能与详细配置指南
  • 一份全面「梳理LLM幻觉问题」的综述
  • 生成指定位数强Lucas校验伪素数-Arnault1995构造法
  • pytorch下载离线包的网址
  • Mac如何搭建Vue项目
  • 在ITSM中,实施变更管理的重要因素!
  • MyBatis-Plus逻辑删@TableLogic
  • C#入门(1):程序结构、数据类型
  • 51单片机/STM32F103/STM32F407学习1_点亮LED灯
  • R语言——taxize(第三部分)
  • 进程和线程
  • Electron入门
  • 腾讯云标准型S5云主机性能评测_CPU内存_带宽系统盘测评
  • vue3的单组件编写【一】
  • 十六、RabbitMQ快速入门
  • 一次性能测试,为啥把我逼疯了?
  • 弄懂Rust编程中的Trait
  • Appium移动自动化测试—如何安装Appium
  • 全国机动车达4.3亿辆 驾驶人达5.2亿人 新能源汽车保有量达1821万辆
  • Docker 笔记(三)--容器
  • mybatis-plus自动生成代码(整理版)