这篇文章主要介绍了java之JVM字节码结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1.SpringMVC,Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。2.Shiro,Apache Shiro是Java的一个安全框架。3.Mybatis,MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。4.Dubbo,Dubbo是一个分布式服务框架。5.Maven,Maven是个项目管理和构建自动化工具。6.RabbitMQ,RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。7.Ehcache,EhCache 是一个纯Java的进程内缓存框架。
1、魔数
所有.class文件的前四个字节都是魔数,魔数的固定值为0xCAFEBABE。魔数放在文件的开头,JVM可以根据文件的开头判断这个文件是否有可能是.class文件。如果是这样的话,之后的操作会继续下去。
2、版本号
版本号为魔数后的4个字节,前2个字节显示下一个版本号,后2个字节显示主版本号。
主版本号后的字节是常量池入口。在常量池中保存两种常量:字面量和符号引用。字面量在代码中声明为Final的常量值,符号引用类别和界面的全局限定名、字段的名称和说明符、方法的名称和说明符。常量池整体分为常量池计数器和常量池数据区两部分。
3、常量池
常量池结束后的两个字节,描述了这个Class是类还是界面,以及是否用Public、Abstract、Final等装饰符装饰。
4、访问标志
常量池结束之后的两个字节,描述该Class是类还是接口,以及是否被Public、Abstract、Final等修饰符修饰。
5、当前类名
访问标志后的两个字节,描述的是当前类的全限定名。这两个字节保存的值为常量池中的索引值,根据索引值就能在常量池中找到这个类的全限定名。
6、父类名称
当前类名后的两个字节,描述父类的全限定名,同上,保存的也是常量池中的索引值。
7、接口信息
父类名称后为两字节的接口计数器,描述了该类或父类实现的接口数量。紧接着的n个字节是所有接口名称的字符串常量的索引值。
8、字段表
字段表用于描述类和接口中声明的变量,包含类级别的变量以及实例变量,但是不包含方法内部声明的局部变量。
感谢你能够认真阅读完这篇文章,希望小编分享的“java之JVM字节码结构的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。