java是什么意思(写了这么多)
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

我们都知道著名的口号—— & quotWriteOnce,RunAnywhere & quot,这是对Java平台独立性的准确概括。字节码JVM使其平台无关,同时也衍生出另一种独立性————语言独立性。Kotlin、Groovy、Scala、Clojure和JRuby等语言都可以在JVM上运行。理论上,只要源代码可以编译成符合JVM规范的字节码,任何语言都可以在JVM中运行。
字节码是语言和JVM之间的一个关键桥梁,今天我们一起来说说这个关键人物。
概览
我们创建一个用户类:package com . shuijing;然后通过javac命令编译PublicclassUser{},以获得User.class文件。然后用支持十六进制的文本工具(比如sublime)打开,会看到以下内容:
十六进制类
在一堆看似不规则的字符中,我们发现前几个字似乎有什么特殊的含义。是的,这也解释了为什么Java的商标是一杯热气腾腾的咖啡。前四个字节称为MagicNumber,它唯一的作用是确保这是一个JVM可以接受的类文件。
类文件中没有分隔符,所有数据项都按顺序排列。哪个字节代表什么意思,谁挨着谁,有多长,都是规定好的,不能改变。
类文件结构
让我们看看类文件的标准结构:ClassFile { u4magicu2minor _ versionu2major _ versionu2constant _ pool _ countCP _ info constant _ pool[常数池计数-1];u2access _ flagsu2this _ classu2super _ classu2interfaces _ countU2 interfaces[interfaces _ count];u2fields _ countfield _ info fields[fields _ count];u2methods _ countmethod _ info methods[methods _ count];u2attributes _ countattribute _ info attributes[属性_计数];}来自《TheJavaVirtualMachineSpecification》 JavaSE8Edition
如上所示,类文件包含两种数据类型:无符号数和表。
无符号数是基本类型,u1、u2、u4和u8分别代表1字节、2字节、4字节和8字节的无符号数。无符号数可以描述根据UTF-8编码的数字、索引引用、量化值或字符串。
表由几个无符号数字或其他表格(复杂对象)组成,并以& quot_ info & quot。一个类文件可以看作一个表。
每个数据项的描述:
名字
类型
量
解释
魔法
u4
一个
神奇数字:咖啡宝贝
次要_版本
u2
一个
次要版本
主要_版本
u2
一个
主版本
常量池计数
u2
一个
恒定池计数
常量池
cp _信息
常量池计数-1
常数存储库
访问标志
u2
一个
入口标志
这个_类
u2
一个
类指数
超级阶级
u2
一个
父类索引
接口_cout
u2
一个
接口索引计数
接口
u2
接口数
界面索引集
字段_计数
u2
一个
字段计数
田地(复数);场;域;字段
字段信息
字段_计数
字段集
方法计数
u2
一个
方法计数
方法
方法信息
方法计数
方法集
属性_计数
u2
一个
属性计数
属性
属性信息
属性_计数
属性集
顺序是自上而下,严格限制,不能修改。
让我们用一个更生动的图片来展示类文件的结构示意图:
类文件结构示意图
如何查看
我们可以通过& quotjavap & quotJDK的命令是:javap-vUser.class
您将看到以下信息:
通过命令查看字节码
另外还可以通过IDEA的插件查看,会更友好。效果如下:
通过插件查看字节码。
插件:JClassLib
结束
学习字节码,会让以前只知道的知识变得知道。今天开(挖)个小(大)头(坑)。如果你对字节码感兴趣,可以留言告诉我,然后我们再详细(慢慢)讨论(填)理论(坑)。
本文主要介绍了关于java是什么意思(写了这么多)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/99738.html