当前位置: 首页 > news >正文

济南集团网站建设/深圳网络推广公司排名

济南集团网站建设,深圳网络推广公司排名,wordpress .net源码,wordpress 演示数据 导入文章目录1.概述2.编译过程3.测试样例[编译结果class文件解析说明]3.1.我们创建了一个项目demo-gvm,其中创建了一个类App.java文件3.2.查看原始的.class代码3.3.原始文件class结构的内容解析3.4.我们对照上面的class结构与App.class文件 我们进行分析3.4.1.magic [前…

文章目录

  • 1.概述
  • 2.编译过程
  • 3.测试样例[编译结果class文件解析说明]
    • 3.1.我们创建了一个项目demo-gvm,其中创建了一个类App.java文件
    • 3.2.查看原始的.class代码
    • 3.3.原始文件class结构的内容解析
    • 3.4.我们对照上面的class结构与App.class文件 我们进行分析
      • 3.4.1.magic [前面4个字节]
      • 3.4.2.minor_version[2个字节]

1.概述

我们今天要讲的就是Example.java到Example.class的过程与原理
在这里插入图片描述
javac:是jdk的一个工具,将java文件编译为class文件

2.编译过程

在这里插入图片描述

3.测试样例[编译结果class文件解析说明]

3.1.我们创建了一个项目demo-gvm,其中创建了一个类App.java文件

在这里插入图片描述
现在我们用最原始的javac命令去编译这个文件

localhost:demo gaoxinfu$ pwd
/Users/gaoxinfu/demo-gvm/src/main/java/com/gaoxinfu/demo
localhost:demo gaoxinfu$ ls -la
total 8
drwxr-xr-x  3 gaoxinfu  staff   96 Feb 13 14:59 .
drwxr-xr-x  4 gaoxinfu  staff  128 Feb 13 14:57 ..
-rw-r--r--  1 gaoxinfu  staff  180 Feb 13 14:56 App.java
localhost:demo gaoxinfu$ javac App.java 
localhost:demo gaoxinfu$ 

3.2.查看原始的.class代码

cafe babe 0000 0034 001d 0a00 0600 0f09
0010 0011 0800 120a 0013 0014 0700 1507
0016 0100 063c 696e 6974 3e01 0003 2829
5601 0004 436f 6465 0100 0f4c 696e 654e
756d 6265 7254 6162 6c65 0100 046d 6169
6e01 0016 285b 4c6a 6176 612f 6c61 6e67
2f53 7472 696e 673b 2956 0100 0a53 6f75
7263 6546 696c 6501 0008 4170 702e 6a61
7661 0c00 0700 0807 0017 0c00 1800 1901
000c 4865 6c6c 6f20 576f 726c 6421 0700
1a0c 001b 001c 0100 1563 6f6d 2f67 616f
7869 6e66 752f 6465 6d6f 2f41 7070 0100
106a 6176 612f 6c61 6e67 2f4f 626a 6563
7401 0010 6a61 7661 2f6c 616e 672f 5379
7374 656d 0100 036f 7574 0100 154c 6a61
7661 2f69 6f2f 5072 696e 7453 7472 6561
6d3b 0100 136a 6176 612f 696f 2f50 7269
6e74 5374 7265 616d 0100 0770 7269 6e74
6c6e 0100 1528 4c6a 6176 612f 6c61 6e67
2f53 7472 696e 673b 2956 0021 0005 0006
0000 0000 0002 0001 0007 0008 0001 0009
0000 001d 0001 0001 0000 0005 2ab7 0001
b100 0000 0100 0a00 0000 0600 0100 0000
0700 0900 0b00 0c00 0100 0900 0000 2500
0200 0100 0000 09b2 0002 1203 b600 04b1
0000 0001 000a 0000 000a 0002 0000 000b
0008 000c 0001 000d 0000 0002 000e 

在这里插入图片描述

3.3.原始文件class结构的内容解析

[https://docs.oracle.com/javase/8/index.html]
在这里插入图片描述https://docs.oracle.com/javase/specs/index.html
在这里插入图片描述
https://docs.oracle.com/javase/specs/jvms/se8/html/index.html
在这里插入图片描述https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html
在这里插入图片描述
这个class文件结构的介绍

ClassFile {u4             magic;  #文件类型u2             minor_version; # jdk版本u2             major_version; # jdk版本u2             constant_pool_count; # 常量的个数cp_info        constant_pool[constant_pool_count-1];u2             access_flags;u2             this_class;  #本类的引用u2             super_class; #父类的引用u2             interfaces_count;#接口数量u2             interfaces[interfaces_count];u2             fields_count; # 字段个属于field_info     fields[fields_count];u2             methods_count; #方法个数method_info    methods[methods_count];u2             attributes_count;attribute_info attributes[attributes_count];
}

前面是数据类型,关于介绍大家参考下面的地址
https://www.cnblogs.com/gulang-jx/p/9846456.html

3.4.我们对照上面的class结构与App.class文件 我们进行分析

cafe babe 0000 0034 001d 0a00 0600 0f09
0010 0011 0800 120a 0013 0014 0700 1507
0016 0100 063c 696e 6974 3e01 0003 2829
5601 0004 436f 6465 0100 0f4c 696e 654e
756d 6265 7254 6162 6c65 0100 046d 6169
6e01 0016 285b 4c6a 6176 612f 6c61 6e67
2f53 7472 696e 673b 2956 0100 0a53 6f75
7263 6546 696c 6501 0008 4170 702e 6a61
7661 0c00 0700 0807 0017 0c00 1800 1901
000c 4865 6c6c 6f20 576f 726c 6421 0700
1a0c 001b 001c 0100 1563 6f6d 2f67 616f
7869 6e66 752f 6465 6d6f 2f41 7070 0100
106a 6176 612f 6c61 6e67 2f4f 626a 6563
7401 0010 6a61 7661 2f6c 616e 672f 5379
7374 656d 0100 036f 7574 0100 154c 6a61
7661 2f69 6f2f 5072 696e 7453 7472 6561
6d3b 0100 136a 6176 612f 696f 2f50 7269
6e74 5374 7265 616d 0100 0770 7269 6e74
6c6e 0100 1528 4c6a 6176 612f 6c61 6e67
2f53 7472 696e 673b 2956 0021 0005 0006
0000 0000 0002 0001 0007 0008 0001 0009
0000 001d 0001 0001 0000 0005 2ab7 0001
b100 0000 0100 0a00 0000 0600 0100 0000
0700 0900 0b00 0c00 0100 0900 0000 2500
0200 0100 0000 09b2 0002 1203 b600 04b1
0000 0001 000a 0000 000a 0002 0000 000b
0008 000c 0001 000d 0000 0002 000e 
1.u4 标示4个字节,16进制,就是前面 cafe babe,也就是cafe babe开头的都是class文件

3.4.1.magic [前面4个字节]

1.magic这个是标示了一下文件类型,

3.4.2.minor_version[2个字节]

0000 0034 对应10进制的52,代表JDK 8中的一个版本

其他不在赘述

http://www.lbrq.cn/news/1570807.html

相关文章:

  • wordpress博客费用/张家界百度seo
  • 谷歌广告优化/抖音seo什么意思
  • 个人备案怎么做旅游网站/什么是域名
  • 手机网站模板用什么做/长春seo培训
  • 深圳最好的做网站/武汉最新今天的消息
  • 网站开发公司 上/关键词seo优化排名公司
  • 怀远做网站/产品推广策略怎么写
  • 网站截图环境 php/优化王
  • 有没有免费做片头的网站/网推接单平台
  • ps上做网站/南昌搜索引擎优化
  • 如何查看网站是否被k/列表网推广效果怎么样
  • 陕西省建设工程造价管理协会网站/惠州百度推广优化排名
  • 营销网站建设流程图/学大教育一对一收费价格表
  • 国内网站用django做的/网络广告策划案
  • 网站如何做超级链接/网络营销策略包括哪些
  • 如何给公司做网站/搜索百度网页版
  • 世界500强企业数量/郑州厉害的seo顾问
  • 欧美网站建设风格特点/制作网页完整步骤代码
  • 做眼镜网站草图有什么原则/更先进的seo服务
  • 网站空间管理站/接app推广接单平台
  • 重庆找做墩子网站/外贸怎么找客户资源
  • 学php动态网站开发好就业/郑州网站营销推广
  • 做一个介绍网站多少钱/化工网站关键词优化
  • 网络营销网站建设论文/三一crm手机客户端下载
  • wordpress使用环境/企业网站设计优化公司
  • 网站开发各个文件/官网优化包括什么内容
  • 企业网站素材/平谷头条新闻
  • 电影大型网站制作/制作网站的步骤
  • 网站的模版可以换吗/seo优化工作内容
  • 重庆网站建设仿站/怎样在百度上发布广告
  • 92、23种设计模式-单例模式
  • 主进程如何将客户端连接分配到房间进程
  • 云计算-OpenStack 实战运维:从组件配置到故障排查(含 RAID、模板、存储管理,网络、存储、镜像、容器等)
  • Linux的进程信号
  • SQL详细语法教程(一)--数据定义语言(DDL)
  • 【CSS 布局】告别繁琐计算:CSS 现代布局技巧(gap, aspect-ratio, minmax)