java JVM之字节码结构的示例分析

介绍

这篇文章主要介绍了java JVM之字节码结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

常用的java框架有哪些

1。SpringMVC, Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级网络框架。2。Shiro, Apache Shiro是Java的一个安全框架。3。Mybatis, Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.4.Dubbo,达博是一个分布式服务框架.5.Maven, Maven是个项目管理和构建自动化工具.6.RabbitMQ, RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器1:8)。Ehcache, Ehcache是一个纯Java的进程内缓存框架。

<强> 1,魔数

所有. class文件的前四个字节都是魔数,魔数的固定值为0 xcafebabe开头。魔数放在文件的开的头,JVM可以根据文件的开头判断这个文件是否有可能是。类文件。如果是这样的话,之后的操作会继续下去。

<强> 2版本号

版本号为魔数后的4个字节,前2个字节显示下一个版本号,后2个字节显示主版本号。

主版本号后的字节是常量池入口。在常量池中保存两种常量:字面量和符号引用。字面量在代码中声明为最终的常量值,符号引用类别和界面的全局限定名,字段的名称和说明符,方法的名称和说明符。常量池整体分为常量池计数器和常量池数据区两部分。

<强> 3,常量池

常量池结束后的两个字节,描述了这个类是类还是界面,以及是否用公共的,抽象的,最后等装饰符装饰。

<强> 4,访问标志

常量池结束之后的两个字节,描述该类是类还是接口,以及是否被公开的,抽象的,最后等修饰符修饰。

<强> 5,当前类名

访问标志后的两个字节,描述的是当前类的全限定名。这两个字节保存的值为常量池中的索引值,根据索引值就能在常量池中找到这个类的全限定名。

<强> 6,父类名称

当前类名后的两个字节,描述父类的全限定名,同上,保存的也是常量池中的索引值。

<强> 7日接口信息

父类名称后为两字节的接口计数器,描述了该类或父类实现的接口数量。紧接着的n个字节是所有接口名称的字符串常量的索引值。

<强> 8字段表

字段表用于描述类和接口中声明的变量,包含类级别的变量以及实例变量,但是不包含方法内部声明的局部变量。

感谢你能够认真阅读完这篇文章,希望小编分享的“java JVM之字节码结构的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

java JVM之字节码结构的示例分析