首先创建java文件 HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
String s = "Hollo World";
}
}
编译
javac HelloWorld.java
生成class文件 HelloWorld.class
查看class 文件 打开文件
vim HelloWorld.class
,然后输入:%!xxd
就是以16进制显示class文件了,内容如下00000000: cafe babe 0000 0034 0011 0a00 0400 0d08.......4........
00000010: 000e 0700 0f07 0010 0100 063c 696e 6974..............()V...Code..
00000030: 0f4c 696e 654e 756d 6265 7254 6162 6c65.LineNumberTable
00000040: 0100 046d 6169 6e01 0016 285b 4c6a 6176...main...([Ljav
00000050: 612f 6c61 6e67 2f53 7472 696e 673b 2956a/lang/String;
)V
00000060: 0100 0a53 6f75 7263 6546 696c 6501 000f...SourceFile...
00000070: 4865 6c6c 6f57 6f72 6c64 2e6a 6176 610cHelloWorld.java.
00000080: 0005 0006 0100 0b48 6f6c 6c6f 2057 6f72.......Hollo Wor
00000090: 6c64 0100 0a48 656c 6c6f 576f 726c 6401ld...HelloWorld.
000000a0: 0010 6a61 7661 2f6c 616e 672f 4f62 6a65..java/lang/Obje
000000b0: 6374 0021 0003 0004 0000 0000 0002 0001ct.!............
000000c0: 0005 0006 0001 0007 0000 001d 0001 0001................
000000d0: 0000 0005 2ab7 0001 b100 0000 0100 0800....*...........
000000e0: 0000 0600 0100 0000 0100 0900 0900 0a00................
000000f0: 0100 0700 0000 2000 0100 0200 0000 0412...... .........
00000100: 024c b100 0000 0100 0800 0000 0a00 0200.L..............
00000110: 0000 0300 0300 0400 0100 0b00 0000 0200................
00000120: 0c0a..
~
【Linux|以16进制的形式查看java class二进制文件】也可以使用Linux下的xxd命令,将二进制信息转换为16进制数据,使用方式为
xxd HelloWorld.class HelloWorld.txt
生成的HelloWorld.txt与通过
:%!xxd
是一样的二进制与16进制转换还有其他一些方式,如下:
linux下查看二进制文件
以十六进制格式输出:
od [选项] 文件
od -d 文件 十进制输出
-o 文件 八进制输出
-x 文件 十六进制输出
xxd 文件 输出十六进制
在vi命令状态下:
:%!xxd :%!od 将当前文本转化为16进制格式
:%!xxd -c 12 每行显示12个字节
:%!xxd -r 将当前文本转化回文本格式
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- linux笔记|linux 常用命令汇总(面向面试)
- jvm|【JVM】JVM08(java内存模型解析[JMM])