03JVM_类加载

一、类加载与字节码技术

1.类文件结构

2.字节码指令

3.编译期处理

4.类加载阶段

5.类加载器

6.运行期优化

1.类文件结构

类文件结构

1.1 魔数magic

介绍

每个java class文件的前4个字节是魔数:0x CAFEBABE。魔数作用在于分辨出java class文件和非java class文件。

1.2 版本minor_version,major_version

介绍

4~7字节,表示类的版本00 34(16进制换算十进制是52),表示java8

51 java7

52 java8

53 java9

1.3 常量池

介绍

存放字面量(文本字符串,final常量)和符号引用(包名,类名)

①8~9字节,常量池计数器2个字节代表常量池的长度。00 23(十进制35)表示有1~34项。

 

 ②后面n个字节(1-常量池-1)就是常量池表,存放的是字面量(字符串,final常量值)符号引用(类,方法,字段描述符)

1.4访问标识和继承信息

1.access_flags:常量池结束后的2个字符就是访问标志

判断这个class是类还是接口…

 经过查表知道00 21 是由0x0020+0x0001组合而成,所以是公共类

2.this_class:占2字节,当前类的名字是什么

00 03 表示常量池的#3项,需要从常量池读取

3.super_class:占2字节,父类的名字是什么。

00 04 表示常量池的#4项,需要从常量池读取

4.接口集合

①interfaces_count:占2字节,实现接口的数量

00 00  没实现接口

②interfaces[interfaces_count]:占2字节,接口有哪些

1.5字段表集合

fields

字段表表示声明的变量,字段的名字,字段的类型是什么。通过引用常量池的常量描述

1.fields_count(字段计数器)

2个字节,表示成员变量的数量

2.fields[ ] 字段表

字段表结构

字段表含义

 

00 02:访问标志,查上表,私有的

00 05:字段名,查常量池 #5

00 06:字段数据类型,查常量池 #6

00 00: 属性计数器

00 02: 属性集合

1.6方法表集合

methods:

①指向常量池索引的集合。每一个method_info对应着一个类或接口的信息。

②方法的访问修饰符,方法的返回值,方法参数信息

1. methods_count方法计数器

2个字节,方法的个数

00 02 :有2个方法

2. methods[ ] 方法表

存放方法信息的

详细的列表

1.7附加属性表集合

介绍

class文件的源文件名称…

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/129010.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vuepress样式修改内容宽度

1、相关文件 一般所在目录node_modules\vuepress\theme-default\styles\wrapper.styl 2、调整宽度,截图中是已经调整好的,在我电脑上显示刚刚好。

026:vue中el-progress逆向倒计时方式显示

第026个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

Kubernetes dashboardv2.7.0安装指南:从零开始搭建可视化界面

一、K8S管理控制台 Kubernetes Web UI(或Kubernetes Dashboard)是用于管理和监视Kubernetes集群的不同工具和用户界面。以下是一些常见的Kubernetes Web UI工具和用户界面: Kubernetes Dashboard: Kubernetes官方提供的Web用户界面&#xf…

MYSQL的慢查询

通过查询SQL的执行频次,我们就能够知道当前数据库到底是增删改为主,还是查询为主。 那假如说是以查询为主,次数我们可以借助于慢查询日志。接下来,我们就来介绍一下MySQL中的慢查询日志。 慢查询日志 慢查询日志记录了所有执行时间…

VirtualBox(内有Centos 7 示例安装)

1常见概念以及软件安装 1.1 虚拟化技术: 虚拟化技术指的是将计算机的各种硬件资源加以抽象、转换、分割,最后组合 起来的技术。其目的和作用主要是打破硬件资源不可分的情况,方便程序员自 己集成所需资源。 1.2 Virtual Box 其是虚拟化技术作…

图解三重积分的对称性

1.图解三重积分的对称性 关于三重积分详见:三重积分(Triple Integral) 三重积分的对称性原理与二重积分类似,关于二重积分的对称性详见:图解二重积分的对称性 被积函数 f ( x , y , z ) f(x,y,z) f(x,y,z)可以有不同的物理意义,…

SSMP整合综合案例【SpringBoot的基本增删改查】

一、基本页面 主页面 添加 删除 分页 条件查询 实体类开发————使用Lombok快速制作实体类 Dao开发————整合MyBatisPlus,制作数据层测试 Service开发————基于MyBatisPlus进行增量开发,制作业务层测试类 Controller开发————基于Restful…

【Two Stream network (Tsn)】(二) 阅读笔记

贡献 将深度神经网络应用于视频动作识别的难点,是如何同时利用好静止图像上的 appearance information以及物体之间的运动信息motion information。本文主要有三点贡献: 1.提出了一种融合时间流和空间流的双流网络; 2.证明了直接在光流上训…

【Spring面试】五、Bean扩展、JavaConfig、@Import

文章目录 Q1、如何在Spring创建完所有的Bean之后做扩展?Q2、Spring容器启动时,为什么先加载BeanFactoryPostProcess?Q3、Bean的生产顺序是由什么决定的?Q4、Spring有哪几种配置方式Q5、JavaConfig是如何替代spring.xml的?Q6、Com…

SpringMVC基础入门及工作流程---全方面详细介绍

一,SpringMVC概念 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简…

赋能工业物联网 | 数据驱动,加速智能制造

行业背景 工业物联网场景下,随着智能设备及物联网技术的广泛应用,数据是最重要的资源之一,企业需要对各种机器、设备和传感器产生的时序数据进行采集、存储与分析。 因此,何为行之有效的数据库解决方案?企业普遍更为…

MySQL--数据库基础

数据库分类 数据库大体可以分为 关系型数据库 和 非关系型数据库 常用数据类型 数值类型: 分为整型和浮点型: 字符串类型 日期类型

【PTA】浙江大学计算机与软件学院2019年考研复试上机自测

个人学习记录,代码难免不尽人意。 呃,今天做了做19年的复试上机题,死在hash表上了,后面详细解释。心态要好,心态要好 7-1 Conway’s Conjecture John Horton Conway, a British mathematician active in recreational…

SpringMVCJReble的使用文件的上传下载

目录 前言 一、JReble的使用 1.IDea内安装插件 2.激活 3.离线使用 使用JRebel的优势 二、文件上传与下载 1 .导入pom依赖 2.配置文件上传解析器 3.数据表 4.配置文件 5.前端jsp页面 6.controller层 7.测试结果 前言 当涉及到Web应用程序的开发时&…

AI人工智能Mojo语言:AI的新编程语言

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 Mojo的主要功能包括: 类似Python的语法和动态类型使Python开发人员易于学习Mojo,因为Python是现代AI / ML开发背后的主要编程语言。使用Mojo,您可以导入和使用任何Python库&#xf…

设计模式之外观模式

文章目录 影院管理项目传统方式解决影院管理传统方式解决影院管理问题分析外观模式基本介绍外观模式原理类图外观模式解决影院管理传统方式解决影院管理说明外观模式应用实例 外观模式的注意事项和细节 影院管理项目 组建一个家庭影院: DVD 播放器、投影仪、自动屏…

FPGA通信—千兆网(UDP)软件设计

一、PHY引脚功能描述 引脚功能描述1CLK25 CLK125:内部PLL生成的125MHz参考时钟,如MAC未使用125MHe时钟,则此引脚应保持浮动, 2 4 63 GND 接地3REG OUT开关压器,1.05V输出 5 6 8 9 11 12 14 15 MDI[0] MDI[0]- MDI[1] MDI[1…

Redis Redis介绍、安装 - Redis客户端

目录 redis是什么,他的应用场景是什么? Redis的一些主要特点和应用场景: redis的官方网站:Redis redis是键值型数据库:(也就是key-value模式)(跟python的字典很像) …

Web server failed to start. Port 8080 was already in use.之解决方法

问题: Web server failed to start. Port 8080 was already in use,这句错误描述意思是当前程序的端口号8080被占用了,需要将占用该端口的程序停止掉才行;错误如图所示: 解决方法: 按住winr,输入…

【大虾送书第九期】速学Linux:系统应用从入门到精通

目录 🍭写在前面 🍭为什么学习Linux系统 🍭Linux系统的应用领域 🍬1.Linux在服务器的应用 🍬2.嵌入式Linux的应用 🍬3.桌面Linux的应用 🍭Linux的版本选择 &a…