`
Ydoing
  • 浏览: 106183 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java类文件结构笔记

 
阅读更多

概述

  • 一次编写,处处运行(Write Once, Run Anywhere).

  • 各种平台的虚拟机与所有平台都统一使用的程序存储格式-字节码(ByteCode).

  • Java虚拟机不和包括Java在内任何语言绑定,它只与Class文件锁关联.因此Groovy,JRuby,Jython,Scala都可以在Java虚拟机上运行.

Class类文件结构

Class文件是一组以8字节为基础单位的二进制流,中间没有任何空隙和分隔符.

1.魔数

前4个字节表示魔数0xCAFEBABE

2.版本号

接下来是4个字节,前2个字节是次版本号,后2个字节是主版本号

3.常量池

  • 存在两大常量:字面量(literal)和符号引号(Symbolic References).

  • 常量池中每一项常量都是一个表.

4. 访问标志

常量池紧接两个字节代表访问标志(access_flags),识别是类、接口、public类型、abstract类型、final类型。

5.类索引、父类索引与接口索引集合

类索引、父类索引与接口索引都是u2类型数据,索引对应常量池项,这三项确定类的继承关系。

6.字段表集合

字段表用于描述类或接口声明的变量。

7.方法表的集合

字段表用于描述方法。

8.属性表集合

  • code属性

javac编译后变成字节码指令存储在code属性中。包括操作数栈max_stack和存储空间max_locals。其中max_locals的单位是slot。slot是虚拟机为局部变量分配内存的最小大小。对应32位数据来说,每个局部变量占用1个slot,64位的占有2个slot。

  • Signature属性

记录泛型类型。

  • Exception属性

  • ConstantValue属性

  • SourceFile属性

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    java类文件结构(笔记).docx

    Java 类文件结构是Java虚拟机(JVM)执行的基础,它包含了构成Java程序的所有必要信息。Class文件是一种二进制格式,由8位字节组成,数据紧密排列,没有额外的分隔符,确保高效存储。Class文件由一系列的数据项组成...

    java李兴华学习笔记之Java常用类库

    根据提供的资料,“Java李兴华学习笔记之Java常用类库”这份文档来源于北京MLDN软件实训中心的教学资料,主要涵盖了Java编程语言中常用类库的基础知识与实践技巧。课程内容分为两大部分: 1. **上次课程的主要知识...

    尚硅谷JAVA基础笔记吐血整理

    包名反映了文件的目录结构,可以避免名称冲突,并有助于代码的管理。 【MVC设计模式】 MVC(Model-View-Controller)模式是软件设计中常用的一种架构模式,将应用程序分为模型层、视图层和控制器层,分别负责数据...

    韩顺平老师尚硅谷Java数据结构与算法194集笔记

    这是我从B站上看韩老师讲的数据结构与算法后整理的笔记 代码经过运行,欢迎批评指正 有些地方我感觉还是挺难的 大都经过我自己的语言进行描述,韩老师中期的表达可能或多或少也影响可阅读性,望先生们见谅

    有道云笔记内容下载java版,有道云笔记备份到本地

    3. FileUtil.java:这是典型的工具类,通常包含一系列静态方法,用于处理文件和目录的操作,如创建、读取、写入、删除等。在这个项目中,FileUtil可能会用于将从服务器获取的JSON数据写入到本地文件中。 综上所述,...

    黑马java教程知识点笔记整理

    异常类层次结构基于Java的Throwable类。 【方法】 方法是实现特定功能的代码块,可以重复使用。方法包含参数列表和返回类型。Java支持重载,即同名方法可以有不同的参数列表。 【类库与集合框架】 Java标准类库...

    java超强笔记

    随着对基础知识的掌握,笔记会进一步带你探索Java集合框架,包括数组列表、链表、队列、栈、映射等数据结构,以及它们在实际问题中的应用。此外,多线程编程也是Java的一大亮点,笔记会介绍线程的创建与同步机制,如...

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    Java JDK 7学习笔记 PDF

    5. **NIO.2文件系统API**:引入了`java.nio.file`包,提供了一套新的文件系统操作API,支持文件路径操作、文件属性查询和变更、文件观察等,相比传统的I/O操作更加强大和高效。 6. **字符串拼接优化**:JDK 7对字符...

    java笔记 java笔记

    - **异常层次**:Java中的异常类层次结构。 - **未检查的异常**:运行时异常,不需要显式处理。 - **自定义异常**:通过继承`Exception`类或其子类来创建自定义异常。 - **抛出异常**:通过`throw`语句主动抛出异常...

    Java基础尚硅谷宋红康学习笔记

    5. **输入/输出**:Java的I/O流系统支持文件操作和网络通信,如FileReader、FileWriter、BufferedReader、BufferedWriter以及Socket、ServerSocket等类。 6. **字符串处理**:String类在Java中扮演重要角色,提供了...

    达内JAVA培训综合笔记

    在解读达内JAVA培训综合笔记内容之前,需要指出,本文档由于是通过OCR扫描形成的,其中的笔记内容可能会有少许错别字或识别误差。但我们可以忽略这些细节问题,重点在于理解笔记中的知识点。 一、Java技术基础 Java...

    Java类集,整理总结的笔记

    Java类集是Java编程语言中的核心部分,它包括了大量的接口和类,用于处理各种数据结构、集合、映射以及I/O操作。这份“Java类集”笔记是对这一关键主题的全面整理和总结,旨在帮助Java程序员更好地理解和运用这些...

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

    - **Hello World示例**:演示了基本的Java语法结构。 - **算术运算示例**:展示了变量声明、赋值和基本算术运算。 #### JDK安装与配置 - **JDK简介**:Java Development Kit,包含Java运行环境(JRE)、工具和基础...

    Java 学习笔记Java学习笔记

    3. 异常处理:Java使用try-catch-finally结构进行异常处理,提供了预定义的异常类,如IOException、NullPointerException等。程序员可以自定义异常类,以处理特定的错误情况。 4. 集合框架:Java集合框架是用于存储...

    狂神说JAVA的所有笔记.zip

    异常处理是JAVA中的重要安全机制,集合框架是存储和操作数据的主要工具,IO流用于文件操作和数据传输,多线程则可以实现程序的并发执行,网络编程则是开发分布式应用的基础,反射提供了运行时动态操作类和对象的能力...

    java控制台版笔记本

    在Java中,一切皆为对象,所以这个“笔记本”程序可能是由多个类组成的,比如`Note`类来表示单个笔记,`Notebook`类来管理所有的笔记,以及一个`Main`类作为程序的入口点。`Note`类可能包含标题、内容和创建日期等...

    java基础总结大全(笔记).pdf

    - CLASSPATH用于指定Java类的搜索路径,JVM通过它找到对应的.class文件。 3. 变量: - 变量用于存储数据,定义变量是为了重复使用同一类型的存储空间。 4. 运算符: - `&`是按位与运算符,无论前一个表达式的...

    Java 学成在线笔记

    2. **面向对象编程**:封装、继承、多态是Java的核心特性,笔记可能详细解释了类、对象、接口、抽象类的概念,以及如何实现多态性。 3. **异常处理**:Java中的异常处理机制,如try-catch-finally语句块,以及不同...

Global site tag (gtag.js) - Google Analytics