- 浏览: 356293 次
- 性别:
- 来自: 南京
博客专栏
-
设计模式那些事儿
浏览量:5966
文章分类
- 全部博客 (85)
- news (3)
- java面试题 (3)
- java基础 (2)
- 英语短文 (2)
- 英语演讲 (2)
- Weekly Address (5)
- 英语写作 (2)
- 转载 (1)
- 2010 FIFA World Cup (5)
- Scrum (1)
- 计算机基础 (2)
- java引用对象 (1)
- 英语阅读 (1)
- Ext (6)
- Javascript (3)
- Web编程 (4)
- 战国策 (7)
- html (1)
- java (33)
- concurrency (1)
- jvm (31)
- 方法区 (9)
- 栈 (5)
- 堆 (1)
- 程序计数器 (1)
- 本地方法栈 (1)
- class file (5)
- 常量池 (2)
- attributes (1)
- 连接模型 (1)
- applet (1)
- gc (5)
- 垃圾收集 (5)
- 方法调用 (2)
- IBM (0)
- 门户(Portal) (0)
- Solr (1)
- Lucene (1)
- 全文检索 (1)
- 设计模式 (4)
- 责任链模式 (1)
- 责任链 (1)
- COR (1)
- Pattern (1)
最新评论
-
Nabulio:
是不错的
Java的Integer与int互转 -
shihengli2010:
学习了 !Integer i = 100; Integer ...
Java的Integer与int互转 -
flex涵:
还可以,差不多就是这个意思.
Java的Integer与int互转 -
lijingshou:
相当好用。。。
输入年月日格式yyyyMMdd,判断是否是周末 -
denverj:
你好,是这本书的英文版,名字叫<Inside the J ...
JVM学习笔记-帧数据区(Frame Data)
What is a Java Class File?
The Java class file is a precisely defined binary file format for Java programs. Each Java class file represents a complete description of one Java class or interface. There is no way to put more than one class or interface into a single class file. The precise definition of the class file format ensures that any Java class file can be loaded and correctly interpreted by any Java Virtual Machine, no matter what system produced the class file or what system hosts the virtual machine.
Java class文件是对Java程序二进制文件格式的精确定义。每一个Javaclass文件都对一个Java类或者Java接口做出了全面描述。一个class文件中只能包含一个类或者接口。无论Java class文件在何种系统上产生,无论虚拟机在何种系统上运行,对Java class文件的精确定义使得所有Java虚拟机都能够正确地读取和解释所有Javaclass文件。
Although the class file is related to the Java language architecturally, it is not inextricably linked to the Java language. As shown in Figure 6-1, you could write programs in other languages and compile them to class files, or you could compile your Java programs to a different binary file format. Nevertheless, most Java programmers will likely use the class file as the primary vehicle for delivering their programs to Java Virtual Machines.
尽管class文件与Java语言结构相关,但它并不一定必须与Java语言相关。如图6-1所示,可以使用其他语言来编写程序,然后将其编译为class文件,或者把Java程序编译为另一种不同的二进制文件格式。实际上,Javaclass文件的形式能够表示Java源代码中无法表达的有效程序,然而,绝大多数Java开发者几乎都会选择使用class文件作为程序传给虚拟机的首要方式。
As mentioned in earlier chapters, the Java class file is a binary stream of 8-bit bytes. Data items are stored sequentially in the class file with no padding between adjacent items. The lack of padding helps keep class files compact. Items that occupy more than one byte are split up into several consecutive bytes that appear in big-endian (higher bytes first) order.
如前所述,Java class文件是8位字节的二进制流。数据项按顺序存储在class文件中,相邻的项之间没有任何间隔,这样可以使class文件紧凑。占据多个字节空间的项按照高位在前的顺序分为几个连续的字节存放。
Just as your Java classes can contain varying numbers of fields, methods, method parameters, local variables, and so on, the Java class file can contain many items that vary in size or number from one class file to another. In the class file, the size or length of a variable-length item precedes the actual data for the item. This allows class file streams to be parsed from beginning to end, reading in the size of an item first followed by the item data.
和Java的类可以包含多个不同的字段,方法,方法参数,局部变量等一样,Java class文件也能够包含许多不同大小的项。在class文件中,可变长度项的大小和长度位于其实际数据之前。这个特性使得calss文件流可以从头到尾被顺序解析,首先读出项的大小,然后读出项的数据。
What's in a Class File?
The Java class file contains everything a Java Virtual Machine needs to know about one Java class or interface. The remainder of this chapter describes the class file format using tables. Each table has a name and shows an ordered list of items that can appear in a class file. Items appear in the table in the order in which they appear in the class file. Each item has a type, a name, and a count. The type is either a table name or one of the "primitive types" shown in Table 6-1. All values stored in items of type u2, u4, and u8 appear in the class file in big-endian order.
Java class文件中包含了Java虚拟机所知道的,关于类或者接口的所有信息。本章剩余部分将用表格形式描述class文件格式。每个表格都有一个名字,每个表格都显示了在class文件中出现的项的有序列表。这些项按照出现在class文件中的顺序在表中列出。每一项都包括类型、名称及该项的数量。类型或者未表名,或者为如表6-1所示的“基本类型”。所有存储在类型u2,u4和u8项中的值,在class文件中以高位在前的形式出现。
Table 6-1. Class file "primitive types"
u1 | a single unsigned byte |
u2 | two unsigned bytes |
u4 | four unsigned bytes |
u8 | eight unsigned bytes |
The major components of the class file, in their order of appearance in the class file, are shown in Table 6-2. Each of these components is described in more detail below.
可变长度的ClassFile表中的项,如表6-2所示,按照它们在class文件中出现的顺序列出了主要部分。
Table 6-2. Format of a ClassFile Table
Type | Name | Count | ||
u4 | magic | 1 | ||
u2 | minor_version | 1 | ||
u2 | major_version | 1 | ||
u2 | constant_pool_count | 1 | ||
cp_info | constant_pool | constant_pool_count - 1 | ||
u2 | access_flags | 1 | ||
u2 | this_class | 1 | ||
u2 | super_class | 1 | ||
u2 | interfaces_count | 1 | ||
u2 | interfaces | interfaces_count | ||
u2 | fields_count | 1 | ||
field_info | fields | fields_count | ||
u2 | methods_count | 1 | ||
method_info | methods | methods_count | ||
u2 | attributes_count | 1 | ||
attribute_info | attributes | attributes_count |
发表评论
-
java书籍
2011-12-15 15:31 0线程 Java Concurrency in Pra ... -
JVM学习笔记-本地方法调用(Invoking a Native Method)
2011-11-25 11:56 1200Invoking a Native Method ... -
JVM学习笔记-调用Java方法(Invoking a Java Method)
2011-11-25 11:35 1551Invoking a Java Method As m ... -
JVM学习笔记-分代收集器(Generational Collectors)
2011-11-23 14:41 1959Generational Collectors ... -
JVM学习笔记-拷贝收集器(Copying Collectors)
2011-11-22 16:34 1654Copying Collectors Copy ... -
JVM学习笔记-压缩收集器(Compacting Collectors)
2011-11-22 16:17 1378Compacting Collectors G ... -
JVM学习笔记-跟踪收集器(Tracing Collectors)
2011-11-22 16:04 1967Tracing Collectors Trac ... -
JVM学习笔记-引用计数收集器(Reference Counting Collectors)
2011-11-22 15:46 2552Reference Counting Collect ... -
applet notinited的解决方案
2011-11-13 14:45 4585最近项目当中正好使用到了applet,这个很少接触过的东东。 ... -
JVM学习笔记-动态连接和解析(Dynamic Linking and Resolution)
2011-11-08 11:09 3473When you compile a Java pro ... -
JVM学习笔记-属性格式(Attributes Types)
2011-11-07 12:15 1521Attributes The Java Vir ... -
JVM学习笔记-属性(Attributes)
2011-11-07 12:03 1557Attributes As mentioned ... -
JVM学习笔记-方法(Methods)
2011-11-07 11:25 2262Methods Each method dec ... -
JVM学习笔记-字段(Fields)
2011-11-07 11:17 1975Each field (class variable a ... -
JVM学习笔记-特殊字符串(Special Strings)
2011-11-05 14:33 1710Special Strings 特殊字符串 T ... -
JVM学习笔记-本地方法栈(Native Method Stacks)
2011-11-02 10:16 19263本地方法栈(Native Me ... -
JVM学习笔记-帧数据区(Frame Data)
2011-10-28 09:16 1757In addition to the local var ... -
JVM学习笔记-操作数栈(Operand Stack)
2011-10-27 11:12 14150Like the local variables, th ... -
JVM学习笔记-局部变量区(Local Variables)
2011-10-27 10:42 3094The local variables secti ... -
JVM学习笔记-栈帧(The Stack Frame)
2011-10-27 10:35 2563The stack frame has three pa ...
相关推荐
### JVM学习笔记(一) #### 一、JVM概述与工具使用 JVM(Java Virtual Machine)是Java语言的核心组成部分之一,它为Java程序提供了一个跨平台的运行环境。本篇学习笔记主要介绍如何利用一系列工具来查看和监控JVM...
ClassFile结构接着包含了一系列的元数据,如访问标志(access_flags)、类索引、父类索引以及接口索引列表等,这些数据定义了类的特性、继承关系以及实现的接口。 类加载机制是JVM的关键组成部分,它负责将类文件从...
Java程序被编译成字节码(.class文件),可以在安装了Java虚拟机(JVM)的任何平台上运行。这使得Java成为构建企业级应用和服务端应用的理想选择。 #### 二、Java开发环境搭建 - **JAVA_HOME**: 指向JDK的安装路径...
### Java学习笔记知识点详解 #### 一、Java环境配置与基本概念 - **系统变量path**: 在设置Java开发环境时,需要配置系统变量`path`,这样计算机才能找到执行Java命令所需的程序。例如,当我们输入`javac`或`java`...
【Java SE学习笔记】是针对Java初学者的一份详实的学习资源,主要涵盖了Java的基础知识、进阶概念以及编程实践。这份笔记以HTML格式呈现,方便读者在线阅读或下载后离线浏览。以下是对这份笔记可能包含的重要知识点...
### Smali学习笔记 #### 1. Dalvik与Smali ##### 1.1 Dalvik虚拟机概述 Google推出的Dalvik虚拟机(Dalvik Virtual Machine, DVM)首次亮相是在2007年底,随着Android SDK的发布而一同进入公众视线。这款虚拟机是由...
### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...
- **编译性语言**:Java 是一种编译型语言,源代码首先被编译成字节码(.class 文件),然后由 JVM 解释执行。 - **强类型语言**:Java 语言具有严格的类型检查机制,能够有效减少运行时错误。 - **开源项目**:Java...
- **文件操作**:File类的使用,文件的创建、读写、删除等。 - **对象序列化**:将对象转换为字节流,便于存储或网络传输。 6. **多线程**: - **Thread类**:创建和启动线程的方法。 - **同步机制**:...
### Java学习笔记精要 #### 一、Java 开发工具 Editplus 配置详解 - **编辑器选择**: 使用 `Editplus` 作为 Java 编程的文本编辑器。 - **与 JDK 的连接配置**: - **javac (编译)**: 参数 `-d.$(FileName)` 表示...
Java学习笔记之大鹏JAVA终级总结,是针对Java编程语言深入学习和面试准备的一份综合资料。这份总结涵盖了从基础知识到高级概念的多个方面,旨在帮助初学者理解和掌握Java的核心概念,同时解决面试中可能出现的关键...
这份"Java-J2SE学习笔记"包含了丰富的Java基础知识,是初学者和进阶者的重要参考资料。以下将从几个关键知识点进行详细阐述: 1. **Java语言基础**:Java是一种面向对象的编程语言,具有简单性、面向对象、健壮性、...
- 文件操作:File类用于文件的创建、删除、重命名等。 - 字节流与字符流:InputStream/OutputStream和Reader/Writer家族。 10. **多线程**: - 线程的创建:通过实现Runnable接口或继承Thread类。 - 线程控制:...
《Ant学习笔记:详解Ant执行命令参数与系统属性》 Ant,作为一个基于Java的构建工具,因其跨平台性以及XML格式的构建脚本而被广泛应用于自动化构建过程,如编译、打包、测试等。本篇文章将深入探讨Ant执行命令的...
### Java入门学习笔记 #### 一、Java特点与运行原理 **1.1 Java特点** - **简单性:** Java的设计使得它易于学习且避免了许多传统编程语言中存在的复杂性。 - **面向对象:** Java是一种纯面向对象的语言,支持...
《CoreJava学习笔记》 Java,作为一种广泛使用的高级编程语言,以其独特的特性和优势深受开发者喜爱。本学习笔记旨在深入浅出地介绍Java的核心概念,帮助初学者快速掌握这一强大的工具。 1. Java特点 Java语法...
以上只是Java学习笔记中可能涉及的部分知识点,实际上,完整的笔记还会包含更深入的Java特性,如注解、模块系统、JDBC数据库访问、Spring框架等内容,以及实际项目开发中的最佳实践。这份笔记是初级Java程序员系统...
Java面试题及学习笔记概述 Java作为一种广泛应用的编程语言,其面试题库广泛且深入,涵盖了从基础语法到高级特性的各个层面。本篇将基于常见的Java面试问题,结合学习笔记,深入探讨Java的核心概念和技术。 一、...
### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...