我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JAVA虚拟机(JVM)详细介绍(四)——类文件结构

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JAVA虚拟机(JVM)详细介绍(四)——类文件结构

讲完了自动内存管理,我们来说说执行子系统。执行子系统讲解的是JVM如何执行程序。

20190619144251184.png

Class文件概述

这篇我们只讲讲Class文件。Class文件又名类文件或字节码文件。javac将.java文件(源代码)编译成.class文件(字节码),jvm再将.class文件解释成机器码。

20190619144410727.png

Class文件中包含的是Java虚拟机指令集和符号表以及若干其它辅助信息。其是一组以8字节为基础单元的二进制流,没有空隙存在。

20190619145121941.jpg

其存储数据的结构有两种:无符号数和表。

(1)无符号数是用来描述数字,索引引用,数量值或按照UTF-8编码构成字符串值。属于基本的数据类型,以u1,u2,u4,u8分别代表1个字节,2个字节,4个字节,8个字节

(2)表是由多个无符号数或其它表作为数据项构成的复合数据类型,以“_info”结尾。

其特点是:在Class文件中,哪个字节代表什么含义,长度是多少,先后顺序如何,都不允许改变。

Class文件组成部分

20190619145257218.png对于Class的组成,在上图中已经罗列的很清楚了。还需再对常量池进行一下强调:当虚拟机运行时,需要从常量池获得对应的符号引用,再在类创建时或运行时解析、翻译到具体的内存地址之中。

以上便是为大家整理的关于JAVA虚拟机中class文件部分,更多相关问题请访问PHP中文网:JAVA视频教程

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JAVA虚拟机(JVM)详细介绍(四)——类文件结构

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JAVA虚拟机(JVM)详细介绍(四)——类文件结构

讲完了自动内存管理,我们来说说执行子系统。执行子系统讲解的是JVM如何执行程序。Class文件概述这篇我们只讲讲Class文件。Class文件又名类文件或字节码文件。javac将.java文件(源代码)编译成.class文件(字节码),jvm再将.class文
JAVA虚拟机(JVM)详细介绍(四)——类文件结构
2016-02-29

JAVA虚拟机(JVM)详细介绍(五)——类加载机制

上篇中我们讲解了Class文件,这篇我们说说虚拟机是如何加载这些Class文件的?Class文件中的信息进入到虚拟机后会发生什么变化?这就涉及到了类加载机制。类加载机制是把类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚
JAVA虚拟机(JVM)详细介绍(五)——类加载机制
2015-12-28

JAVA虚拟机(JVM)详细介绍(七)——JVM优化

还以这个图为例,从.java到.class是编译过程,从.class到机器码是解释过程。下面对其进行分别优化。在优化过程中,对编译阶段的优化主要是对前端编译器的优化,在运行阶段的优化,主要是对即时编译器的优化。编译器优化编译过程以上为javac的编译过程图,以
JAVA虚拟机(JVM)详细介绍(七)——JVM优化
2017-09-20

JAVA虚拟机(JVM)详细介绍(一)——JVM概述

首先,对以上的四部分进行解释。(1)自动内存管理讲的是java运行时数据区里的部分,分为内存划分和垃圾收集器。(2)执行子系统讲的是画红圈的三部分:类文件结构、类加载机制、字节码执行引擎。(3)优化分别为编译期优化和运行期优化。(4)并发讲的是虚拟机是如何实现
JAVA虚拟机(JVM)详细介绍(一)——JVM概述
2016-06-30

JAVA虚拟机(JVM)详细介绍(八)——高效并发

内存模型内存模型是在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象。其主要目标是定义程序中各个变量的访问规则。主内存和工作内存所有的变量都存储在主内存中,每条线程还有自己的工作内存,其工作内存中是被线程使用到的变量的主内存副本拷贝,线程对变量的
JAVA虚拟机(JVM)详细介绍(八)——高效并发
2017-08-31

JAVA虚拟机(JVM)详细介绍(三)——垃圾收集机制

在上一篇中我们说过,自动内存管理分为两部分:给对象分配内存和回收分配给对象的内存。这篇我们说说后者,即回收分配给对象的内存。回收内存要用到垃圾收集机制,英文名儿是GC(Garbage Collection)。在本部分我们要解决如下几个问题:1、哪些内存需要回收
JAVA虚拟机(JVM)详细介绍(三)——垃圾收集机制
2017-01-27

JAVA虚拟机(JVM)详细介绍(六)——字节码执行引擎

JVM中的执行引擎在执行java代码的时候,一般有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择。栈帧定义:栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它位于虚拟机栈里面。作用:每个方法从调用开始到执行完成的过程中,都
JAVA虚拟机(JVM)详细介绍(六)——字节码执行引擎
2014-07-03

Java虚拟机,类文件结构深度解析

Java类文件结构Java虚拟机不和包括Java在内的任何语言绑定,只与 "Class文件" 这种特定的二进制文件所关联, Class文件中包含了Java虚拟机指令集合符号表以及若干其它辅助信息。 Java虚拟机作为一个通用的、机器无关的执
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录