同事:你能跟我聊聊class文件么?

396次阅读  |  发布于2年以前

1.前言

上次聊过了Java源码经过编译器的一系列转换最终生成标准的Class文件的过程,我们用一张图来简单地回顾一下:

Java为了实现“一次编写,到处运行”的跨平台特性,选取了Class文件这一中间格式来保证代码能在不同平台运行。Class文件中记录了源代码中类的字段、方法指令等重要信息。

Class文件可以在不同平台上的不同JVM中运行,它们最终生成的机器指令可能也是有差别的,但是,最终执行的结果一定要保证各平台一致。

有一点值得注意的是,虽然Java是与平台无关的语言,但并不意味着Java虚拟机(JVM)是各平台通用的,不同的平台上运行的JVM是有一定区别的,它们为用户屏蔽了各平台的一些差异。

我们今天要聊的就是源代码和JVM中间的这一座桥梁——Class文件。

还有一件事,记得我们在《[JAVA代码编译流程是怎样的?] 》一文的最后提到的 字节码与Class文件的关系 吗?

在本文中,需要再次强调,字节码只是Class文件中众多组成部分的其中之一

2.如何阅读Class文件

在上面这个例子1中,访问标记就是00 21

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8