Java类文件的结构】的更多相关文章

Class文件是以8位字节为基础单位的二进制流,各部分中间没有分隔符.遇到8位字节以上的空间数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储. Class文件采用类似C语言的伪结构体来存储,这种伪结构体只有两种数据类型:无符号数和表.无符号数以u1,u2,u4,u8四种,数字代表字节数.可以用来描述数字.索引引用.数量值或者按照UTF-8编码构成字符串值.表是由多个无符号数或其他表作为数据项构成的复合数据类型,所有表习惯以“info”结尾.表用于描述有层次关系的复合结构数据,整个Cl…
①无关性的基石 “与平台无关的”得理想最终实现在操作系统的应用层上:Sun公司和其他虚拟机提供商发布了许多可以在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现了程序的“一次编写,处处运行”. 虚拟机的两种中立特性:一是平台无关性:字节码是构成平台无关性的基石:另一种是语言无关性,这也是要实现的,在java虚拟机上可以运行其他的语言.实现语言无关性的基础仍然是虚拟机和字节码存储格式. 虚拟机不会和任何语言绑定,它只与“Class文件”这种特定的二进文件格式所关联…
概述 class类文件的结构可见下面这样图(出处见参考资料),可以参照下面的例子,对应十六进制码,找出找出相应的信息. 其中u2 , u4 表示的意思是占用两个字节和占用四个字节,下面我们将会各项说明. class类文件结构 Class 文件是一组以8 字节位单位的二进制流,各个数据按照一定的顺序排放,Class文件采用一种类似于C语言结构体的伪结构来存储数据. 例如下面代码使用java编译后,生成的class 文件. public class TestClass { private int m…
一.类文件的结构 我们都知道,各种不同平台的虚拟机,都支持 "字节码 Byte Code" 这种程序存储格式,这构成了 Java 平台无关性的基石.甚至现在平台无关性也开始演变出 "语言无关性" ,就是其他语言也可以运行在 Java 虚拟机之上,比如现在的 Kotlin.Scala 等. 实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java 虚拟机步包括 Java 语言在内的任何语言绑定,他只和 "Class 文件" 这种特定的二进制文件格…
今天在往一个jsp文件里添加代码时,项目跑起来访问这个jsp时报错.. The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit _jspService方法超过65535 bytes最大限制. 额,这是什么鬼,看不懂啊.于是问问度娘,发现Java对类文件有个限制,不能超过65K字节.因为我改动的这个jsp已经很大了,而jsp文件在weblog…
参考文档 http://blog.chinaunix.net/uid-692788-id-2681132.html http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javap.html 功能说明:Java 类文件解析器. 语法:javap [ 命令选项 ] class. . . 补充说明: javap 命令用于解析类文件.其输出取决于所用的选项.若没有使用选项,javap 将输出传递给它的类的 public 域及方法.ja…
Eclipse或MyEclipse没有在java类文件上显示接口图标的问题解决办法: 前: 后:…
Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,中间没有任何分隔符.Class文件的结构只有两种数据类型:无符号数和表.无符号数以u1.u2.u4和u8来代表1个字节.两个字节.四个字节和八个字节的无符号数,可以用来描述数字.索引引用.数值量或者按UTF-8编码的字符串值.表是有多个无符号数或者其他表作为数据项构成的复合数据类型,习惯性以“_info”结尾.下面是Class文件的结构: 类 型 名 称 数 量 u4 magic 1 u2…
最近在折腾php调用java类,网上查阅资料,最终选用JavaBridge,遇到的第一个问题是java_require() 函数引入自定义java打包而成的jar文件,在新版本的JavaBridge中,该函数已被废弃,使用会出错. 网上搜索的资料,大致有两种方法,亲测可行: 方法一 从http://php-java-bridge.sourceforge.net/pjb/index.php下载php-java-bridge_6.2.1的war包,将其中的将war包放在tomcat的应用程序目录we…
前言: 带有包名的java类在DOC下编译可以成功,但是运行出错  错误: 找不到或无法加载主类 com.soanl.socket.MyServer D盘temp文件下有个Hello.java文件,包名为 com.soanl.test 如:D:/temp/Hello.java 1.首先进入d盘的temp文件目录 d: cd temp D:\temp 2.编译Hello.java文件 java -d . Hello.java  (-d和Hello中间有个点,注意点的两边都要空格) 这个时候在tem…