`
chenguangyao
  • 浏览: 3071 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

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

jvm 
阅读更多
虚拟机的平台无关和语言无关性:
(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为字节进行存储。
分享到:
评论

相关推荐

    深入理解Java虚拟机读书笔记之:第3章 安全(3)

    通过阅读《深入理解Java虚拟机》第三章,开发者不仅可以深入理解Java的安全机制,还能学习到如何在实际项目中实施这些安全策略,提升应用的安全性。对于想要从事Java开发或者对系统安全有深入了解需求的人来说,这一...

    JVM:深入理解Java虚拟机 - 学习笔记

    《JVM:深入理解Java虚拟机》是一本深入解析Java虚拟机工作原理和技术细节的经典书籍。这份学习笔记将涵盖JVM的关键概念、架构以及它如何影响Java程序的性能。我们将探讨以下几个方面: 1. **JVM概述** Java虚拟机...

    JAVA学习笔记-java学习笔记WORD样式.docx

    ### JAVA学习笔记知识点详解 #### 一、计算机概述 1. **计算机**:电子设备,用于处理信息。 2. **计算机硬件**: - **中央处理器(CPU)**:计算机的大脑,负责处理指令。 - **内存(RAM)**:临时存储数据,...

    java虚拟机源码学习-UnderstandingTheJVM:深入理解Java虚拟机(周志明)源码及学习笔记

    《深入理解Java虚拟机》是Java开发者们深入探讨Java运行机制的经典之作,作者周志明以其深入浅出的讲解方式,揭示了Java虚拟机(JVM)的工作原理。本资源包含该书第三版的源码分析及学习笔记,旨在帮助读者更透彻地...

    java学习笔记-----给java初学者

    学习Java的第一步是安装Java Development Kit (JDK),它包含了编译、调试和运行Java程序所需的所有工具,如javac编译器和Java虚拟机(JVM)。 3. **基本语法** - **变量与数据类型**:Java有八种基本数据类型,...

    Java_se基础毕向东老师全程笔记

    ### 第六章:常用类API - **字符串处理**:`String`类和`StringBuilder`类。 - **日期时间操作**:`Date`类、`Calendar`类以及`java.time`包中的类。 ### 第七章:集合框架(容器) - **集合接口**:`Collection`、...

    韩顺平编写的java学习笔记(全)

    韩顺平编写的《Java学习笔记》全面涵盖了Java的基础知识和发展方向,不仅适合初学者入门,也适合进阶开发者深入了解Java的各项技术栈。通过对本书的学习,读者能够掌握Java的核心概念、编程技巧以及实际应用场景,为...

    逐步深入的java学习笔记

    ### 逐步深入的Java学习笔记知识点总结 #### 一、Java环境配置 1. **JAVA_HOME**: 配置JDK的目录。这是Java环境的基本配置之一,用于指示系统JDK安装的位置。 - **Linux系统**: ```bash JAVA_HOME=/opt/jdk1.5.0...

    java学习笔记.pdf

    #### 第六章:时间、日期和数字 - **6.1 Date类** 提供了表示日期和时间的功能。 - **6.2 Calendar类** 更高级的时间和日期处理类。 - **6.3 Math类** 提供了常用的数学函数和常量。 #### 第七章:AWT工具...

    达内COREJAVA学习笔记.doc

    ### 达内COREJAVA学习笔记知识点详述 #### 一、Java版本与平台概述 - **J2SE**: Java Standard Edition,即Java标准版,针对桌面应用开发。 - **JAVA SE**: 指的是Java SE 5.0,发布于2004年,增加了泛型、枚举等...

    Java+JDK+6学习笔记.pdf

    ### Java+JDK+6 学习笔记知识点详解 #### 一、Java 概述 - **起源与发展:** - Java 最初是由 Sun Microsystems 的 Green Project 开发出来的编程语言,最初是为了创建一个名为 Star7 的应用程序。 - 1995 年 5 ...

    JAVA学习经典笔记-----2

    6. **高性能:** Java虚拟机(JVM)通过即时编译(JIT)技术提高程序的执行速度。 7. **多线程:** Java内置对多线程的支持,简化了并发程序的开发。 #### 三、Java开发环境配置 1. **Linux环境:** - 配置`JAVA_HOME...

    传智播客Java SE基础毕向东老师全程笔记

    ### 传智播客Java SE基础毕向东老师全程笔记知识点概览 ...以上章节覆盖了Java SE基础知识的主要方面,从编程基础到高级主题,每一章都涵盖了关键知识点和技术细节,为学习者提供了全面深入的理解。

    匡彬JAVA学习笔记java语言

    ### 匡彬JAVA学习笔记知识点总结 #### 一、Java虚拟机(JVM) - **概念**: Java虚拟机(JVM)是一种能够执行Java字节码的虚拟机,它为Java程序提供了一个运行时环境。JVM的主要功能包括内存管理、垃圾回收、安全性和...

    java学习笔记

    ### Java学习笔记知识点详解 #### 一、Java平台概述 - **J2SE (Java Platform Standard Edition)**: 标准版Java开发平台,主要用于桌面应用软件的开发。 - **J2EE (Java Platform Enterprise Edition)**: 企业版...

    JAVA--达内培训笔记

    ### JAVA--达内培训笔记知识点总结 #### 一、Java的发展历史及版本 - **Java之父**: James Gosling(戈尔斯林),他在1995年5月23日发布了Java这一编程语言。 - **Java 1.0 版本**: 1995年发布,标志着Java正式...

    Linux学习笔记

    ### Linux学习笔记知识点详解 #### 一、用户与权限管理 **1. 切换当前用户** - **命令格式**: `su [要切换的用户名]` - **示例**: `su root` - **解释**: 使用`su`命令可以切换到另一个用户身份进行操作。如果...

Global site tag (gtag.js) - Google Analytics