jvm全称 java virtual machine (java虚拟机),也就是在计算机上再虚拟一个计算机,它存在于计算机内存中并运行在操作系统之上的。

javap -v class文件名 > 输出文件名 命令:将class文件,翻译成可读懂的字节码指令文件,里面包含了各种各样的指令。

字节码文件(Java中是16进制文件)是经过编译器预处理过的一种文件,是Java的执行文件存在形式,是一组以8位字节为基础单位的二进制流。各个数据项严格按顺序排列。但是不可以被系统直接执行,而是需要虚拟机解释执行。

Class文件格式採用一种类似于C语言结构体的伪结构来存储数据。这样的伪结构仅仅有两种数据类型:无符号数和表。

无符号数:是基本数据类型。以u1、u2、u4、u8分别代表1个字节、2个字节、4个字节、8个字节的无符号数,能够用来描写叙述数字、索引引用、数量值或者依照UTF-8编码构成的字符串值。

:由多个无符号数或者其它表作为数据项构成的复合数据类型。全部表都习惯性地以“_info”结尾。整个Class文件本质上就是一张表。

魔数:

每一个class文件的头4个字节称为魔数,它唯一的作用是确定这个文件是否为一个能被虚拟机接受的Class文件。Class文件的魔数为:0xCAFEBABE。

版本:

第五六个字节是次版本(Minor Version)。第7和第8个字节是主版本(Major Version)。
高版本号的JDK能够向下兼容曾经版本号的Class文件,可是无法执行以后版本号的Class文件,即使文件格式并未发生变化,虚拟机也必须拒绝执行超过其版本号号的Class文件。

常量池:

 
 
 

最新文章

  1. 模块化之Spring3.0 web fragment和gradle构建项目
  2. Thrift的TCompactProtocol紧凑型二进制协议分析
  3. 【转载】Pyqt QSplitter分割窗口
  4. Jvm支持的最大线程数
  5. __KERNEL__ macro
  6. vb.net机房收费系统之组合查询
  7. linux面试题3
  8. 如何判断MSSQL数据库磁盘出现了瓶颈
  9. Android 仿QQ微信开场导航以及登陆界面
  10. TensorFlow深度学习笔记 文本与序列的深度模型
  11. thinkphp中的_get,_post,_request
  12. OpenStack及其构成简介
  13. 深入理解Java虚拟机--下
  14. softmax_cross_entropy_with_logits
  15. Linux环境下jdk1.8压缩包下载
  16. oracle sequence 异常
  17. 基于ASP.NET MVC 微信网页登录授权(scope为snsapi_base) 流程 上 获取OPENID
  18. dirlock.go
  19. BZOJ_2141_排队_树状数组+分块
  20. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】

热门文章

  1. jquery即时获取上传文件input file文件名
  2. selenium之 chromedriver与chrome版本映射表(转载)
  3. maven项目update报错
  4. Python人工智能之路 - 第三篇 : PyAudio 实现录音 自动化交互实现问答
  5. 微软Office Online服务安装部署(一)
  6. PHP导出Excel表
  7. [字符串][NOIP2012]Vigenère密码
  8. C++学习札记(3)
  9. c++ 计算cpu占用率
  10. String 常用函数