《深入理解java虚拟机》学习笔记--第六章:类文件结构

虚拟机的平台无关和语言无关性:
(1)虚拟机可以运行在各种平台上,这些虚拟机都可以在如何执行一种平台无关的字节码,实现了“一次编写,到处运行”的目的。
(2)除了平台无关,虚拟机的另一个特点是语言无关,也就是说不仅是java语言,其他语言也可以运行在java虚拟机上。即不同语言的程序可以通过各类语言的编译器把程序编译成Class(字节码)文件,从而顺利在java虚拟机上运行。
Class类文件的结构:

<!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7InRleHQtaW5kZW50IjoxLCJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwiYmxvY2tJZCI6IjY5NDctMTUyMDgyNDg2NDM0NyIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiJDIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6IuaWhyJ9LHsiY2hhciI6IuS7tiJ9LHsiY2hhciI6IuaYryJ9LHsiY2hhciI6IuS4gCJ9LHsiY2hhciI6Iue7hCJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IjgifSx7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLlrZcifSx7ImNoYXIiOiLoioIifSx7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLln7oifSx7ImNoYXIiOiLnoYAifSx7ImNoYXIiOiLljZUifSx7ImNoYXIiOiLkvY0ifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLkuowifSx7ImNoYXIiOiLov5sifSx7ImNoYXIiOiLliLYifSx7ImNoYXIiOiLmtYEifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlkIQifSx7ImNoYXIiOiLmlbAifSx7ImNoYXIiOiLmja4ifSx7ImNoYXIiOiLpobkifSx7ImNoYXIiOiLnm64ifSx7ImNoYXIiOiLmjIkifSx7ImNoYXIiOiLnhacifSx7ImNoYXIiOiLkuKUifSx7ImNoYXIiOiLmoLwifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLpoboifSx7ImNoYXIiOiLluo8ifSx7ImNoYXIiOiLntKcifSx7ImNoYXIiOiLlh5EifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLmjpIifSx7ImNoYXIiOiLliJcifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiJDIn0seyJjaGFyIjoibCJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6IuaWhyJ9LHsiY2hhciI6IuS7tiJ9LHsiY2hhciI6IuS4rSJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuS4rSJ9LHsiY2hhciI6IumXtCJ9LHsiY2hhciI6IuayoSJ9LHsiY2hhciI6IuaciSJ9LHsiY2hhciI6Iua3uyJ9LHsiY2hhciI6IuWKoCJ9LHsiY2hhciI6IuS7uyJ9LHsiY2hhciI6IuS9lSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuWIhiJ9LHsiY2hhciI6IumalCJ9LHsiY2hhciI6IuespiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6Iui/mSJ9LHsiY2hhciI6IuWwsSJ9LHsiY2hhciI6IuaYryJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuaVtCJ9LHsiY2hhciI6IuS4qiJ9LHsiY2hhciI6IkMifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi5LitIn0seyJjaGFyIjoi5a2YIn0seyJjaGFyIjoi5YKoIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5YaFIn0seyJjaGFyIjoi5a65In0seyJjaGFyIjoi5YegIn0seyJjaGFyIjoi5LmOIn0seyJjaGFyIjoi6YO9In0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi56iLIn0seyJjaGFyIjoi5bqPIn0seyJjaGFyIjoi6L+QIn0seyJjaGFyIjoi6KGMIn0seyJjaGFyIjoi5pe2In0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5b+FIn0seyJjaGFyIjoi6KaBIn0seyJjaGFyIjoi5pWwIn0seyJjaGFyIjoi5o2uIn0seyJjaGFyIjoi44CCIn0seyJjaGFyIjoi5b2TIn0seyJjaGFyIjoi6YGHIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi6ZyAIn0seyJjaGFyIjoi6KaBIn0seyJjaGFyIjoi5Y2gIn0seyJjaGFyIjoi55SoIn0seyJjaGFyIjoiOCJ9LHsiY2hhciI6IuS4uiJ9LHsiY2hhciI6IuWtlyJ9LHsiY2hhciI6IuiKgiJ9LHsiY2hhciI6IuS7pSJ9LHsiY2hhciI6IuS4iiJ9LHsiY2hhciI6IuepuiJ9LHsiY2hhciI6IumXtCJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuaVsCJ9LHsiY2hhciI6IuaNriJ9LHsiY2hhciI6IumhuSJ9LHsiY2hhciI6IuaXtiJ9LHsiY2hhciI6Iu+8jCJ9LHsiY2hhciI6IuS8miJ9LHsiY2hhciI6IuaMiSJ9LHsiY2hhciI6IueFpyJ9LHsiY2hhciI6IumrmCJ9LHsiY2hhciI6IuS9jSJ9LHsiY2hhciI6IuWcqCJ9LHsiY2hhciI6IuWJjSJ9LHsiY2hhciI6IueahCJ9LHsiY2hhciI6IuaWuSJ9LHsiY2hhciI6IuW8jyJ9LHsiY2hhciI6IuWIhiJ9LHsiY2hhciI6IuWJsiJ9LHsiY2hhciI6IuS4uiJ9LHsiY2hhciI6IuiLpSJ9LHsiY2hhciI6IuW5siJ9LHsiY2hhciI6IuS4qiJ9LHsiY2hhciI6IjgifSx7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLlrZcifSx7ImNoYXIiOiLoioIifSx7ImNoYXIiOiLov5sifSx7ImNoYXIiOiLooYwifSx7ImNoYXIiOiLlrZgifSx7ImNoYXIiOiLlgqgifSx7ImNoYXIiOiLjgIIifV19fV0=-->

Class文件是一组以8为字节为基础单位的二进制流,各数据项目按照严格的顺序紧凑的排列在Class文件中,中间没有添加任何的分隔符,这就是的整个Class文件中存储的内容几乎都是程序运行时的必要数据。当遇到需要占用8为字节以上空间的数据项时,会按照高位在前的方式分割为若干个8为字节进行存储。

猜你喜欢

转载自chenguangyao.iteye.com/blog/2419723