概述
一次编写,处处运行(Write Once, Run Anywhere).
各种平台的虚拟机与所有平台都统一使用的程序存储格式-字节码(ByteCode).
Java虚拟机不和包括Java在内任何语言绑定,它只与Class文件锁关联.因此Groovy,JRuby,Jython,Scala都可以在Java虚拟机上运行.
Class类文件结构
Class文件是一组以8字节为基础单位的二进制流,中间没有任何空隙和分隔符.
1.魔数
前4个字节表示魔数0xCAFEBABE
2.版本号
接下来是4个字节,前2个字节是次版本号,后2个字节是主版本号
3.常量池
4. 访问标志
常量池紧接两个字节代表访问标志(access_flags),识别是类、接口、public类型、abstract类型、final类型。
5.类索引、父类索引与接口索引集合
类索引、父类索引与接口索引都是u2类型数据,索引对应常量池项,这三项确定类的继承关系。
6.字段表集合
字段表用于描述类或接口声明的变量。
7.方法表的集合
字段表用于描述方法。
8.属性表集合
javac编译后变成字节码指令存储在code属性中。包括操作数栈max_stack和存储空间max_locals。其中max_locals的单位是slot。slot是虚拟机为局部变量分配内存的最小大小。对应32位数据来说,每个局部变量占用1个slot,64位的占有2个slot。
记录泛型类型。
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 类文件结构是Java虚拟机(JVM)执行的基础,它包含了构成Java程序的所有必要信息。Class文件是一种二进制格式,由8位字节组成,数据紧密排列,没有额外的分隔符,确保高效存储。Class文件由一系列的数据项组成...
根据提供的资料,“Java李兴华学习笔记之Java常用类库”这份文档来源于北京MLDN软件实训中心的教学资料,主要涵盖了Java编程语言中常用类库的基础知识与实践技巧。课程内容分为两大部分: 1. **上次课程的主要知识...
包名反映了文件的目录结构,可以避免名称冲突,并有助于代码的管理。 【MVC设计模式】 MVC(Model-View-Controller)模式是软件设计中常用的一种架构模式,将应用程序分为模型层、视图层和控制器层,分别负责数据...
这是我从B站上看韩老师讲的数据结构与算法后整理的笔记 代码经过运行,欢迎批评指正 有些地方我感觉还是挺难的 大都经过我自己的语言进行描述,韩老师中期的表达可能或多或少也影响可阅读性,望先生们见谅
3. FileUtil.java:这是典型的工具类,通常包含一系列静态方法,用于处理文件和目录的操作,如创建、读取、写入、删除等。在这个项目中,FileUtil可能会用于将从服务器获取的JSON数据写入到本地文件中。 综上所述,...
异常类层次结构基于Java的Throwable类。 【方法】 方法是实现特定功能的代码块,可以重复使用。方法包含参数列表和返回类型。Java支持重载,即同名方法可以有不同的参数列表。 【类库与集合框架】 Java标准类库...
随着对基础知识的掌握,笔记会进一步带你探索Java集合框架,包括数组列表、链表、队列、栈、映射等数据结构,以及它们在实际问题中的应用。此外,多线程编程也是Java的一大亮点,笔记会介绍线程的创建与同步机制,如...
【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...
5. **NIO.2文件系统API**:引入了`java.nio.file`包,提供了一套新的文件系统操作API,支持文件路径操作、文件属性查询和变更、文件观察等,相比传统的I/O操作更加强大和高效。 6. **字符串拼接优化**:JDK 7对字符...
- **异常层次**:Java中的异常类层次结构。 - **未检查的异常**:运行时异常,不需要显式处理。 - **自定义异常**:通过继承`Exception`类或其子类来创建自定义异常。 - **抛出异常**:通过`throw`语句主动抛出异常...
5. **输入/输出**:Java的I/O流系统支持文件操作和网络通信,如FileReader、FileWriter、BufferedReader、BufferedWriter以及Socket、ServerSocket等类。 6. **字符串处理**:String类在Java中扮演重要角色,提供了...
在解读达内JAVA培训综合笔记内容之前,需要指出,本文档由于是通过OCR扫描形成的,其中的笔记内容可能会有少许错别字或识别误差。但我们可以忽略这些细节问题,重点在于理解笔记中的知识点。 一、Java技术基础 Java...
Java类集是Java编程语言中的核心部分,它包括了大量的接口和类,用于处理各种数据结构、集合、映射以及I/O操作。这份“Java类集”笔记是对这一关键主题的全面整理和总结,旨在帮助Java程序员更好地理解和运用这些...
- **Hello World示例**:演示了基本的Java语法结构。 - **算术运算示例**:展示了变量声明、赋值和基本算术运算。 #### JDK安装与配置 - **JDK简介**:Java Development Kit,包含Java运行环境(JRE)、工具和基础...
3. 异常处理:Java使用try-catch-finally结构进行异常处理,提供了预定义的异常类,如IOException、NullPointerException等。程序员可以自定义异常类,以处理特定的错误情况。 4. 集合框架:Java集合框架是用于存储...
异常处理是JAVA中的重要安全机制,集合框架是存储和操作数据的主要工具,IO流用于文件操作和数据传输,多线程则可以实现程序的并发执行,网络编程则是开发分布式应用的基础,反射提供了运行时动态操作类和对象的能力...
在Java中,一切皆为对象,所以这个“笔记本”程序可能是由多个类组成的,比如`Note`类来表示单个笔记,`Notebook`类来管理所有的笔记,以及一个`Main`类作为程序的入口点。`Note`类可能包含标题、内容和创建日期等...
- CLASSPATH用于指定Java类的搜索路径,JVM通过它找到对应的.class文件。 3. 变量: - 变量用于存储数据,定义变量是为了重复使用同一类型的存储空间。 4. 运算符: - `&`是按位与运算符,无论前一个表达式的...
2. **面向对象编程**:封装、继承、多态是Java的核心特性,笔记可能详细解释了类、对象、接口、抽象类的概念,以及如何实现多态性。 3. **异常处理**:Java中的异常处理机制,如try-catch-finally语句块,以及不同...