《深入理解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为字节进行存储。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java虚拟机JVM)是Java程序的运行环境,它负责将Java字节码转换为可执行的机器码并执行。深入理解Java虚拟机涉及了解JVM的工作原理、内存管理、垃圾回收、加载机制等方面的知识。 首先,JVM的工作原理是通过解释器或即时编译器将Java字节码转换为机器码并执行。解释器逐条执行字节码指令,而即时编译器将字节码转换为本地机器码,以提高程序的执行效率。 其次,内存管理是JVM的重要任务之一。JVM将内存分为不同的区域,包括堆、栈、方法区等。堆用于存储对象实例,栈用于存储局部变量和方法调用信息,方法区用于存储的信息。JVM通过垃圾回收机制自动回收不再使用的对象,释放内存空间。 此外,加载机制也是深入理解JVM的关键内容之一。加载是将的字节码加载到内存中,并进行验证、准备、解析等操作。加载器负责查找并加载的字节码,而加载器之间存在着父子关系,形成了加载器层次结构。 还有其他一些与性能优化、调优相关的内容,如即时编译器的优化技术、垃圾回收算法的选择等,也是深入理解Java虚拟机的重要方面。 总的来说,深入理解Java虚拟机需要对JVM的工作原理、内存管理、垃圾回收、加载机制以及性能优化等方面有较深入的了解。掌握这些知识可以帮助开发人员编写出更高效、稳定的Java程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值