JVM类文件结构中Code属性的code_length [问题点数:50分]

Bbs1
本版专家分:0
结帖率 0%
jvm探秘五:Class类文件结构属性
概述在Class文件、字段表和方法表都可以携带自己的<em>属性</em>信息,这个信息用<em>属性</em>表进行描述,用于描述某些场景专有的信息。与Class文件中其它数据项对长度、顺序、格式的严格要求不同,<em>属性</em>表集合不要求其中包含的<em>属性</em>表具有严格的顺序,并且只要<em>属性</em>的名称不与已有的<em>属性</em>名称重复,任何人实现的编译器可以向<em>属性</em>表中写入自己定义的<em>属性</em>信息。虚拟机在运行时会忽略不能识别的<em>属性</em>,为了能正确解析Class文件,虚拟机规范中
深入理解Java虚拟机笔记---属性表集合
在Class文件,字段表,方法表中都可以携带自己的<em>属性</em>表集合,以用于描述某些场景专有的信息。与Class文件中其它的数据项目要求的顺序、长度和内容不同,<em>属性</em>表集合的限制稍微宽松一些,不再要求各个<em>属性</em>表具有严格的顺序,并且只要不与已有的<em>属性</em>名重复,任何人实现的编译器都可以向<em>属性</em>表中写入自己定义的<em>属性</em>信息,Java虚拟机运行时会忽略掉它不认识的<em>属性</em>。为了能正确地解析Class文件,《Java虚拟机规范
JVM基础之Class文件结构
声明:本文是学习笔记,主要学习自《深入理解Java虚拟机·JVM高级特性与最佳实践》周志明著,且本文绝 大部分文字内容直接摘录自此书,部分内容为本人见解,如有不当欢迎指正! Class文件数据类型: Class文件是一组以(8位bit的)byte字节为基础单位的二进制流。 根据Java虚拟机规范的规定,Class文件格式采用一种类似于C...
JVM高级特性与实践(六):Class类文件结构(访问标志,索引、字段表、方法表、属性表集合)
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编译发展的一大步。 上篇博文中学习讲解了Class<em>类文件</em><em>结构</em>的有关知识点,关于数据项方面介绍了常量池,此篇文章将介绍完余下的数据项部分,大致知识点如下: 访问标志、类索引、父类索引与接口索引集合、字段表集合、<em>属性</em>表集合 、各数据项的定义、作用、<em>结构</em>组成及实例讲解
【深入理解JVM】:Class类文件结构
概述我们平时在DOS界面中往往需要运行先运行javac命令,这个命令的直接结果就是产生相应的class文件,然后基于这个class文件才可以真正运行程序得到结果。自然。这是Java虚拟机的功劳,那么是不是Java虚拟机只能编译.java的源文件呢?答案是否定的。时至今日,Java虚拟机已经实现了语言无关性的特点。而实现语言无关性的基础是虚拟机和字节码的存储格式,Java虚拟机已经不和包括Java语言
jvm解析系列][八]方法表集合,Code属性和Exceptions属性,你的字节码存在哪里了?
根据我们第五章的总构图来看,这一章我们正该讲到方法表集合: 大家可能注意到在java中声明一个方法和声明一个变量很相似,public int a = 0;和public int a(){};于是在方法表集合中和字段表集合也很相似。 一个方法表的<em>结构</em>应当和下图一样: 对比字段表应该发现几乎是一样的。access_flags里的可选项略有不同而已。 access_flags:
jvm之详解class类文件结构
Class文件是一组以8位字节为基础单位的二进制流。各个数据项严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分割符。 Class文件<em>结构</em>采用类似C语言的<em>结构</em>来存储数据的,主要有两类数据项,无符号数和表。   Class文件中按照严格 的顺序排列的字节流包含的数据: ClassFile{ u4 magic; u2 minor_version; u2 major_versi...
细说JVM(类文件结构(一))
一、前言 我们知道我们写完的Java程序经过javac xxx.java编译后生成了xxx.class文件,可是你是否想过xxx.class文件到底是什么?这个文件中到底包含了什么内容?那么现在我们就一起通过解析一个.class文件来深入的学习一下<em>类文件</em><em>结构</em>,通过这次的学习,我想你会对class文件了如指掌。 二、Class<em>类文件</em><em>结构</em> 在解析一个class文件之前,我们需要先学习一下Cl...
JVM八:class类文件结构(1)
       Java在诞生时就以一次编写,到处运行特点在各个平台都可以进行运行。其实就是通过不同的编译器(Javac编译器,jrubyc编译器,groovyc编译器等等)将代码编译成规范的class文件,虚拟机只要接收到claas文件而并不关心是class文件时哪一种编译器编译的,这样就到达了(write one,run anywhere)。所以要想更好的了解虚拟机,下面我们走进class文件中...
JVM:类文件结构解析
虚拟机的语言无关性靠的是字节码来实现的,虚拟机不和包括Java在内的任何语言绑定,只和“Class文件”绑定,Java,Jruby,Groovy程序经过各自的编译器形成字节码文件(.class)或叫做<em>类文件</em>。虚拟机处理<em>类文件</em>。<em>类文件</em><em>结构</em>主要包括以下几部分:Class文件版本 + 常量池 + 访问标志 + 类索引父类索引接口索引集合 + 字段表 + 方法表 + <em>属性</em>表 1. <em>类文件</em><em>结构</em> 常量池 ...
【深入Java虚拟机】之二:Class类文件结构
Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把程序代码编译成Class文件,虚拟机并不关心Class的来源是什么语言,只要它符合一定的<em>结构</em>,就可以在Java中运行。Java语言中的各种变量、关键字和运算符的语义最终都是由多条字节码命令组合而成的,因此字节码命令所能提供的语义描述能力肯定会比Java语言本身更强大,这便为
JVM之类文件结构——上篇(常量池)
Java语言之所以强大的一个原因就在于它具有跨平台性,Java源文件被编译后的结果不是本地机器码(与机器平台相关联)而是字节码(与机器平台无关),然后由JVM将字节码去加载并执行它。 那么Java的字节码文件到底长什么样? 下面就是我们程序员入门的HelloWorld程序的Class文件 源文件public class HelloWorld{ public static void ma
深入理解JVM虚拟机:(三)类文件结构(上)
前言 在上一篇深入理解JVM虚拟机:(二)垃圾收集器概述 文章中,我们了解了Java虚拟机中垃圾收集器的种类以及垃圾回收的方式等,这一篇,我们将去了解一下Java中<em>类文件</em>的内部构造,由于这一章比较抽象,因此将会分为两篇文章进行讲解。 概述 代码编译的结果是从本地机器码转变为字节码,是存储格式发展的一小步,确是编程语言发展的一大步。我们都只带Java是一门跨平台的语言,其在诞生之初,就提出了一...
《深入理解Java虚拟机》第六章 类文件结构 — 读书笔记
1. 概述 计算机只认识0和1,我们编写的程序需要经编译器翻译为由0和1构成的二进制文件才能被计算机执行。伴随着虚拟机和大量建立在虚拟机上程序语言的出现,将程序编译为本地字节码文件已不再是唯一的选择,越来越多的程序语言选择了与操作系统无关的,平台中立的格式作为程序编译后的存储格式。 2. 无关性 虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关...
深入理解JAVA虚拟机学习笔记12——Class类文件结构(4属性)
我们的口号是:每天进步一点点!上一篇的字段写到<em>属性</em>的时候,由于<em>属性</em>涉及到的内容比较多,我们暂时搁置了,这一篇是Class文件<em>结构</em>的最后一篇,我们就详细说说<em>属性</em>表结合。九、<em>属性</em>(Attribute):从表中看<em>属性</em>部分分为<em>属性</em>个数(attributes_count)和<em>属性</em>信息(attributes),这个已经没什么好说的了(参考前面的文章),这个单独拿出来主要是<em>属性</em>的类型比较多,如下图所属。类中字段...
JVM笔记5:Class文件结构
Class文件是一组以8位字节为基础单位的二进制流,包含多个数据项目(数据项目的顺序,占用的字节数均由规范定义),各个数据项目严格按照顺序紧凑的排列在Class文件中,不包含任何分隔符,使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙。当遇到需要占用超过8位字节以上空间的数据项目时,会按照高位在前的方式分割为多个8位字节进行存储 数据项目具有2种数据类型: 1,无符号
深入理解JVM(七)——Class文件结构
什么是JVM的“无关性”?Java具有平台无关性,也就是任何操作系统都能运行Java代码。之所以能实现这一点,是因为Java运行在虚拟机之上,不同的操作系统都拥有各自的Java虚拟机,因此Java能实现“一次编写,处处运行”。而JVM不仅具有平台无关性,还具有语言无关性。 平台无关性是指不同操作系统都有各自的JVM,而语言无关性是指Java虚拟机能运行除Java以外的代码!这听起来非常惊人,但JV
属性表集合
<em>属性</em>表(attribute_info)在前面的讲解之中已经出现过数次,在Class文件、字段表、方法表都可以携带自己的<em>属性</em>表集合,以用于描述某些场景专有的信息。      虚拟机规范定义的<em>属性</em> Code<em>属性</em>  Java程序方法体中的代码经过Javac编译器处理后,最终变为字节码指令存储在Code<em>属性</em>内。Code<em>属性</em>出现在方法表的<em>属性</em>集合之中,但并非所有的方法表都必须存在这个<em>属性</em>,譬如接
JVM执行子系统原理
详细介绍了JVM执行子系统的工作原理,包括<em>类文件</em><em>结构</em>与字节码指令(Class<em>类文件</em><em>结构</em>、JVM字节码指令简介)、JVM类加载机制(类加载器、类加载时机、类加载过程)、字节码执行引擎(运行时候的栈<em>结构</em>、方法调用、方法的执行)等,希望对探索JVM工作原理的同学有所帮助。
深入理解JVM(六)——类文件结构——code
CodeJava程序中方法体中的代码经过Javac编译器处理之后,最终变成字节码指令存储在Code<em>属性</em>内。Code<em>属性</em>出现在方法表的<em>属性</em>集合之中,但不是所有的方法表都必须有,譬如接口或者抽象类。Code是Class文件中最重要的一个<em>属性</em>,如果把一个Java程序中的信息分为代码(Code,方法体里面的Java代码)和元数据(MetaData,包括类,字段,方法定义以及其它信息)两部分 类型 名
jvm原理(27)Java字节码方法表与属性表深度剖析
上一节说到成员变量,这一节说一下方法表 图一: 图二: 图三: 行号00000120 开始就是方法表的开始,刚开始2个字节是方法的数量:00 03 是三个方法(无参构造器、变量a的get和set方法) 方法表: 类型 名称 数量 u2 access_flags 1 u2 name_index 1 u2 desc...
jvm解析系列][七]字段表集合、volatile、volatile和属性表集合,你的变量该如何存储?
上段我们说到一个类的基本构成,今天我们来讲一下类的内部<em>结构</em>。类的内部一般情况下由类的成员变量(类字段),方法和内部类等构成。 1、字段表: 不好意思我们这一次需要先上字段表的内容然后一个一个讲解,不能像前面那样像设计者一样一个一个的推出来了,主要原因还是字段表里包含了<em>属性</em>表。 access_flags 还记得我们在上一篇里讲的,在类的继承关系之后应该就是field_info他主要描
Java Class文件结构解析 及 实例分析验证
Class文件是JVM执行引擎的数据入口,也是Java技术体系的基础构成之一;下面我们详细了解Class文件:先对Class文件<em>结构</em>有个大体了解,并了解Class文件<em>结构</em>里的一些名称定义;而后再详细说明<em>结构</em>中每一项数据的含义,并用测试程序编译Class文件来分析验证Class文件<em>结构</em>。
jvm——code信息
  Code: stack=2, locals=4, args_size=2 0: iconst_1 1: istore_2 2: new #1 // class pro1/DemoArray 5: dup 6: invokespecia...
JVM高级特性与最佳实践
理解JVM必备书籍,详细讲解JVM内存模型,JVM性能分析和调优,java<em>类文件</em><em>结构</em>等,带书签,超清晰
JVM 第3课 jvm class结构查看工具下载 JAVA class 查看 字段和方法描述符含义 method_info属性
JAVA class文件是什么呢? 1,JavaClassViewer 工具下载地址 http://www.oschina.net/<em>code</em>/snippet_12_2154 2,文本编辑器写个 SimpleClass.java package com.<em>jvm</em>; public class SimpleClass { public void sayHello (
JVM学习--类文件结构
1.Class<em>类文件</em>的<em>结构</em>    1.1 魔数和Class文件的版本        每个Class文件的头4个字节称为魔数。用于虚拟机辨别能否识别Class文件。        紧接着魔数的4个字节是Class文件的版本号。前两个字节是次版本号,后2个字节是主版本号。虚拟机根据版本号,可以向下接受Class文件,拒绝向上的Class文件。     1.2 常量池        在版本号之后,是常量...
JVM类文件结构
Class文件是一组以8位字节为基础单位的二进制流,包含多个数据项目(数据项目的顺序,占用的字节数均由规范定义),各个数据项目严格按照顺序紧凑的排列在Class文件中,不包含任何分隔符,使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙。当遇到需要占用超过8位字节以上空间的数据项目时,会按照高位在前的方式分割为多个8位字节进行存储 数据项目分为2种基本数据类型(以及由
JVM -类文件结构
下面的分析以如下的class文件为例: CAFEBABE 00000034 00130A00 04000F09 00030010 07001107 00120100 016D0100 01490100 063C696E 69743E01 00032829 56010004 436F6465 01000F4C 696E654E 756D6265 72546162 6C650100 03696E...
JVM(4)类文件结构
class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在class文件中,中间没有分隔符。 class文件格式: 类型 名称 数量 描述 u4 magic 1 魔数 u2 minor_version 1 次版本号 u2 major_version 1 主版本号 u2 constant_pool_c
JVM解析——类文件结构
本系列主要记录笔者在学习 [深入理解Java虚拟机] 一书时的理解 我们都知道在Java中,我们并不需要过多的在意内存的管理,这一切都交给了虚拟机自动管理,我们并不需要操心何时需要去释放一个对象的内存。 当然,如果出现了内存溢出或泄漏,我们就必须去了解一下Java虚拟机的内存管理机制以便于我们解决问题 [笔者仍为Android初学者。如有解释错误的地方,...
JVM——类文件结构
http://blog.csdn.net/zhoufenqin/article/details/51045890 http://blog.csdn.net/ochangwen/article/details/51457398 http://blog.csdn.net/u010349169/article/category/2620885 无关性的基石 各种不同平台的虚拟机与
JVM—类文件结构
Class文件是一组以8位字节为基础单位的二进制流,包含多个数据项目(数据项目的顺序,占用的字节数均由规范定义),各个数据项目严格按照顺序紧凑的排列在Class文件中,不包含任何分隔符,使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙。当遇到需要占用超过8位字节以上空间的数据项目时,会按照高位在前的方式分割为多个8位字节进行存储数据项目分为2种基本数据类型(以及由这两种基...
3. 类文件结构(JVM)
标签(空格分隔): JVM 概述 任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成) Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全是程...
【JVM】类文件结构
Class文件的定义 一组以8字节为基础单位的二进制流, 各个数据项目严格按照顺序紧凑排列在class文件中, 中间没有任何分隔符,这使得class文件中存储的内容几乎是全部程序运行的程序。 注:Java虚拟机规范规定,Class文件格式采用类似C语言<em>结构</em>体的伪<em>结构</em>来存储数据,这种<em>结构</em>只有两种数据类型:无符号数和表。无符号数属于基本数据类型,主要可以用来描述数字、索引符号、数量值或者按照UTF-8编
jvm(五) 类文件结构
前言: Java语言的口号是“一次编写,到处运行”, 实现平台的无关性。 sun公司以及其他的虚拟机公司发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行一种与平台无关的字节码,从而实现程序的“一次编写,到处运行”。字节码存储格式实现了这种平台无关性。 Java虚拟机不和包含java语言在内的任何语言绑定, 其只和“Class文件”特定的字节码文件相关联。基于安全考虑,Java...
(JVM)类文件结构
字面量:类似于Java的常量的概念是具体的值。例如是 1,&quot;abc&quot;这种 符号引用: 1 是类和接口的全限定名称。2 字段的名称和描述符。3 方法的名称和描述符。、 简单名称:没有指定类型的描述符和参数类型,例如变量m和方法inc() 全限定名称:即com/jhc/test/Test就是抱一个类所在的包也表示出来。 描述符:用来描述方法或者字段的数据类型,方法的参数类型和返回值。就是把一个方法的...
JVM相关类文件结构
平台无关性“与平台无关”实现在操作系统的应用层上,通过实现可以运行在各种不同平台上的虚拟机,而这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现程序的“一次编写,到处运行”。 各种不同平台的虚拟机与所有平台都统一是使用的程序存储格式:字节码(ByteCode)是构成平台无关性的基石语言无关性现在有很多语言都可以运行在Java虚拟机之上,比如Clojure、Groovy、JRuby、Jyth
JVM 的类文件结构
CLASS文件<em>结构</em>顺序(无符号字符和表组成):魔数→版本号→常量池→访问标志→类索引→父类索引→接口索引→字段表集合→方法表集合→<em>属性</em>表集合 魔数: 位于Class文件起始4字节:用于进行身份识别,通过虚拟机生成的Class文件魔数为0xCAFEBABE。 版本号: 总共4字节,前两字节表明次版本号,后两字节表明主版本号(即每个JDK大版本),主版本起始值为45(JDK1.
JVM:类文件结构和类加载机制
实现语言无关性的基础是虚拟机和字节码存储格式,Java编译器可以把Java代码编译为存储字节码的class文件。   1、Calss文件<em>结构</em>: https://www.cnblogs.com/wade-luffy/p/5929325.html 2、类加载 虚拟机的类加载机制:虚拟机把描述类的数据从class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以在虚拟机直接...
JVM(四)-类文件结构
Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把程序代码编译成Class文件,虚拟机并不关心Class的来源是什么语言,只要它符合一定的<em>结构</em>,就可以在Java中运行。Java语言中的各种变量、关键字和运算符的语...
Class类文件结构之ConstantValue属性
编程过程中经常用的static,final关键字,也经常听到同事谈起这些词,到底他们怎么样呢,<em>jvm</em>中class<em>类文件</em><em>结构</em>可以找到答案。ConstantValue<em>属性</em>ConstantValue<em>属性</em>的作用是通知虚拟机自动为静态变量赋值,只有被static修饰的变量才可以使用这项<em>属性</em>。非static类型的变量的赋值是在实例构造器方法中进行的;tatic类型变量赋值分两种,在类构造其中赋值,或使用Cons
Visual Studio 下开发无法引用App_Code 里的类
在Visual Studio里开发时,在App_Code文件夹啊里建立的类,无法在项目其他文件夹里引用到     这里有一个解决方法,就是设置App_Code里的<em>类文件</em>的<em>属性</em> 设置App_Code里的<em>类文件</em><em>属性</em>“生成操作”为“编译”,问题解决。
Java中的类文件结构之一:如何分析一个.class文件的二进制码内容
该文为作者原创,请转载者注明出处   以下为一个Java类--Temp4Test package com.demo; public class Temp4Test extends Temp3Test { private int i = 1; public float f; public static String thisstr = &quot;&quot;; ...
深入理解Java虚拟机读书笔记之:第6章 Java class文件
    Java class文件是对Java程序二进制文件格式的精确定义。每一个Java class文件都对一个Java类或者Java接口作出了全面描述。一个class文件中只能包含一个类或者接口。     尽管class文件与Java语言<em>结构</em>相关,但它并不一定必须与Java语言相关。如下图,可以使用其他语言来编写程序,然后将其编译为class文件,或者把Java程序编译为另一种不同的二进制文...
将C# 类文件属性和方法自动生成文档,C#类文档结构化生成
将C# <em>类文件</em>中<em>属性</em>和方法自动生成文档,C#类文档<em>结构</em>化生成
《深入理解Java虚拟机》——类文件结构之魔数常量池
相对于Java虚拟机的其他部分,这部分的内容我们只需要搞清楚下面两个方面的内容: 1.无关性 2.Class文件的<em>结构</em>与组成 我们都知道Java有个特性是:一次编写,到处运行。这里体现的是平台无关性,但是对于Java虚拟机来说,不仅仅是具有平台无关性的特点,还具有语言无关性的特性。 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构
类文件结构示例
<em>类文件</em><em>结构</em>示例,在深入浅出JVM博文中进行演示。如果无关,无需下载。
《Java虚拟机原理图解》 1.2.3、Class文件中的常量池详解(下)
NO9.  类中引用到的field字段 在常量池中是怎样描述的?
JVM总结(四):类文件结构
<em>类文件</em><em>结构</em>     字节码的意义     Class<em>类文件</em>的<em>结构</em>          Class<em>类文件</em>的存储形式          Class文件的格式          Class<em>类文件</em><em>结构</em>详解 <em>类文件</em><em>结构</em> 字节码的意义 为什么存在字节码?   字节码是构成平台无关性的基石。实现语言无关性的基础是虚拟机和字节码存储格式。    Java语言中的各种变量、关键字和运算符的语义最终是由多条字节码...
JVM详解4.类文件结构
点击进入我的博客 4.1 字节码 平台无关:Sun公司以及其他的虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现了程序的“一次编写,到处运行”。语言无关:语言无关的基础是虚拟机和字节码存储格式,Java虚拟机不和任何语言(包括Java)绑定,它只与Class文件这种特定的...
JVM学习笔记- 4 类文件结构
1.Java跨平台 2.class文件<em>结构</em>
JVM 庖丁解牛 - 类文件结构实例分析
1.流程 创建 HelloWorld.java 代码如下 package <em>jvm</em>;/** * @author lidiqing * @since 2017/3/4. */ public class HelloWorld { private final String text = &amp;amp;quot;Hello World!&amp;amp;quot;; public HelloWorld() { }
jvm笔记4--类文件结构
1.无关性的基石 各种不同平台的虚拟机与所有平台统一使用的程序存储格式--字节码(ByteCode)是构成平台无关性的基石 2.class<em>类文件</em><em>结构</em>
JVM虚拟机(三)类文件结构
代码编译的结果是从本地机器码转变为字节码,是存储格式发展的一小步,却是编译语言发展的一大步。一、Class<em>类文件</em><em>结构</em>CLass文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全是程序运行的必要数据,没有空隙存在。当遇到需要占用8字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8...
深入理解JVM - 类文件结构
详细请阅读《深入理解Java虚拟机》第六章节。 1、概述 平台无关性(Write Once ,Run anyWhere)、语言无关性(让其他语言运行在Java虚拟机之上,如Groovy、Scala、JRuby、Jython、Clojure等)的基础是虚拟机和字节码文件。Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联。
六、JVM(HotSpot)类文件结构
注:本博文主要是基于JDK1.7会适当加入1.8内容。 实现语言无关性的基础是虚拟机和字节码的存储形式。 Java程序(.java)——&amp;amp;gt;javac编译器——–&amp;amp;gt;字节码(.class)—&amp;amp;gt;Java虚拟机(HotSpot) JRuby程序(.rb)——-&amp;amp;gt;jrubyc编译器——&amp;amp;gt;字节码(.class)—&amp;amp;gt;Java虚拟机(HotSpot) Groovy程序(...
【JVM笔记】Class类文件结构
Class<em>类文件</em><em>结构</em> Class文件是一组以8位字节为基础单位的二进制流,各个数据项严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符。Class文件格式采用一种类似于语言<em>结构</em>体的伪<em>结构</em>来存储数据,这种伪<em>结构</em>中只有两种数据类型:无符号数(u)和表(_info)。 SmartyPants SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如: ...
JVM虚拟机 - Class类文件结构
JVM虚拟机 - Class<em>类文件</em><em>结构</em> 概述 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎都是程序运行的必要数据。当遇到需要占用8位字节以上空间的数据项时,会按照高位在前的方式分割成若干个8位字节进行存储。 Class文件格式中只有两种数据类型:无符号数和表。 无符号数...
基础储备----JVM类文件结构
作为一名Java后台开发的程序员, 深入理解JVM, 重要性不言而喻, 这篇文章主要是记录JVM<em>类文件</em><em>结构</em>相关知识.
JVM笔记9-Class类文件结构
原文链接:点击打开链接摘要: 1.Class<em>类文件</em><em>结构</em>    Class 文件是一组以 8 位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件之中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。1.Class<em>类文件</em><em>结构</em>   Class 文件是一组以 8 位字节为基础单位的二进制流,各个数据项目严格按照顺序...
细说JVM(类文件结构(二))
一、前言 上一篇博客的地址:细说JVM(<em>类文件</em><em>结构</em>(一)) 二、<em>类文件</em>分析 5、类索引、父类索引与接口索引集合 在访问标志access_flags后接下来就是类索引(this_class)和父类索引(super_class),这两个数据都是u2类型的,而接下来的接口索引集合是一个u2类型的集合,class文件由这三个数据项来确定类的继承关系。由于Java中是单继承,所以父类索引只有一个;但...
[jvm虚拟机]class类文件结构
Technical--Documentation 共享技术文档 项目简介 为为日常工作和学习的总结。 技术文档主站简介 主站文档是我在前人的脚步上对研发的学习和总结纪录,在以后的日子里,我会将自己研发工作中所可能遇见问题和心得在这里纪录下来,公开的分享。世界的存在很美好,开源的存在很精彩。从今天起,我便借助开源的力量,向改变人类的生活方式这条路迈进。 点击...
jvm学习笔记-chapter6 类文件结构
class<em>类文件</em><em>结构</em> 数据及<em>结构</em> 是一组以8位字节为基础单位的二进制流。当遇到占有8位字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储 采用一种类似于C语言<em>结构</em>体的伪<em>结构</em>来存储数据 无符号数:u1 u2 u4 u8 表: 由多个无符号数或者其他表作为数据项构成的复合数据类型 文件格式 类型 名称 数量 说明 u4 magic 1 魔数(0xCAF...
jvm笔记04:类文件结构
前言       class文件时java虚拟机执行引擎的数据入口,也是java技术体系的基础支柱之一,了解class文件的<em>结构</em>对后面进一步了解虚拟机执行引擎有很重要的意义。 概要:     class文件是一组以八位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在class文件中,中间没有添加任何分隔符,这使得整个class文件中存储的内容几乎全部都是程序运行的必要数
深入了解JVM——类文件结构
本文为 《深入理解Java虚拟机》第四章内容的学习笔记,部分内容经过二次加工。若对相关知识感兴趣,推荐购书深入阅读。若认为文章涉嫌侵权,请联系作者及时删除。 本作品采用 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议 (CC BY-NC-SA 3.0 CN) 进行许可 。非商业性质转载请注明作者和出处,禁止商业性质转载。 开源创造世界 无关性的基石 ...
【JVM】第六章_1 类文件结构
第六章_1 <em>类文件</em><em>结构</em> 这章开始之前,我们先搞明白两个概念,机器码和字节码。 一、机器码与字节码 1)机器码: 机器语言指令,有时也被称为原生码(Native Code),是CPU直接读取运行的机器指令,运行速度最快。 2)字节码: 是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件,字节码是一种中间码。编译器将源码编译成字节码,字节码在运行时通过JVM(JAVA虚...
jvm解析系列][五]类文件结构,魔数,最大最小版本号
上一会讲完了JVM的内存分配和垃圾回收策略我们该讲一讲如何组织一个class文件了 一个class文件怎么被加载运行的? 我们可以说java的野心很大,早在97年的时候JVM虚拟机规范中就说以后可以支持其他语言,到JDK1.7的时候基本已经实现了,怎么做到的呢? 这是JVM做的语言无关性即JAVA/Scala/JRuby等都可以编译成class文件,对于JVM而言我不管你之前什么文件反正我只
jvm系统属性的获取
获取你的JVM系统环境<em>属性</em>   Java的"Writer once,run anywhere"口号的确让我们领略到了Java的神奇,也成为SUN宣传Java的金字招牌。拂开这层神秘的面纱,我们不难发现其核心是运行在各种操作系统中的JVM(Java虚拟机)在发挥着重要的作用,Java虚拟机允许我们的纯java类可以达到"一次编写,到处运行"。每个安装在不同操作系统的Java虚拟机负责着Java程序
属性表集合。
博文中的内容来源《深入理解Java虚拟机_JVM高级特性与最佳实践》这一本书,感激不尽。
JVM学习--Class类文件结构
文章目录一个例子(下面的表根据这个例子讲解)Class<em>类文件</em><em>结构</em>Class文件格式魔术次版本号主版本号常量池计数常量池访问标志类索引、父类索引、接口索引集合字段表集合方法表集合<em>属性</em>表集合参考 一个例子(下面的表根据这个例子讲解) public class test{ private int m; public int inc(){ return m+1; }...
JVM读书笔记(三):类文件结构
<em>类文件</em><em>结构</em>一、概述二、无关性的基石(一次编写,到处运行):字节码java虚拟机不和任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件包含了 Java虚拟机指令集和符号表以及若干其他辅助信息。三、Class<em>类文件</em>的<em>结构</em>任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来,类或接口并不一定都定义在文件里, (比如可以通过类加载器直接生成)Class文件
JVM(十)Class类文件结构
文章内容来自《深入理解JVM》和网络资料整理 一、Class文件组成内容 class文件是一组以8位字节为基础单位的二进制流,其与Java虚拟机指令集和符号表以及若干其他辅助信息相对应。 该设计有如下优点: 平台无关性,class文件可以运行在任意平台,无需考虑各个平台机器指令集不同的问题; 语言无关性,不论何种语言,只要生成的class文件格式符合JVM虚拟机规范即可。
JVM学习 之 Class类文件结构
Class文件格式u1代表1个字节,class文件是一组以8位字节为基础单位的二进制流。类型名称数量u4magic1u2minor_version1u2major_version1u2constant_pool_count1cp_infoconstant_poolconstant_pool_count - 1u2access_flags1u2this_class1u2super_class1u2i...
jvm随笔7-class类文件结构
class文件是一组以8字节为基础单位的2进制流,其储存内容全为必要数据,没有空隙。若数据大于8字节,按照类似大端的方式,以高低低高的原则进行数据存放。 class文件中使用一种类c的数据<em>结构</em>,此<em>结构</em>只有两种数据类型,无符号数与表。 无符号数有u1、u2、u4、u8四种类型分别代表1、2、4、8字节的无符号数。 表由无符号数和其他表作为数据项的复合数据类型,表习惯以“_info”结尾。class...
JVM 第6章类文件结构
1 概述 代码编译的结果从本地机器码(Native Code)转变为字节码,字节码与操作系统和机器指令集无关。 1.1 无关性的基石 字节码是构成无关性的基石。 平台无关性 虚拟机载入和执行同一种平台无关性的字节码,从而实现程序的“一次编写,到处运行”。 语言无关性 其他语言运行也可以运行在JVM上(Scala,Jython等)。JVM ...
JVM 技术内幕——JVM 类文件结构与类加载机制
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。实现语言无关性的基础是 VM 和字节码存储格式,JVM 不和包括 Java 在内的任何语言绑定,它只与 &quot;Class 文件&quot; 这种特定的二进制文件格式所关联,Class 文件包含了 JVM 指令集和符号表以及若干其他辅助信息。Java 语言中的各种变量、关键字和运算符号的语义最终都是由多条字节码命令组合而成的。
JVM(十一)基于无符号数和表结构类文件结构
Java的跨平台性 就是因为java编译器(javac)生成了.class文件,可以在任何只要安装了虚拟机就可以执行的字节码文件,java虚拟机没有和任何编程语言绑定,包括java语言,他只和.class二进制文件有关   字节码文件组成(.class) 以8位字节为单位的二进制流文件,当遇上需要占用8位字节以上的数据,就分割成若干个8位字节进行存储 整个class文件可以看成是一张表,...
Java类文件结构详解
Class文件是一组以8位字节为基础单位的二进制流,各项数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,如果是超过8位字节以上空间的数据项,则会按照高位在前的方式(Big-Endian)分割成若干个8位字节进行存储。 Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。
JAVA虚拟机(三)- 图解类文件结构
<em>类文件</em><em>结构</em> <em>结构</em>图 字节码 魔数 主次版本 常量池 常量池<em>结构</em> 类父类接口索引 字段表集合 方法表集合 <em>code</em><em>属性</em>表<em>结构</em> 方法内容 方法内容<em>属性</em>表-行号表 方法内容<em>属性</em>表-本地变量表 方法表2-getValue 类的<em>属性</em>表 总结 <em>类文件</em><em>结构</em> <em>结构</em>图 java源文件,编译为class 之后. class文件的数据<em>结构</em> 将下面这段java源文件为例,分析c...
jdk源码解析(六)——类(class)文件结构
前面的内容我们了解到<em>jvm</em>的内存<em>结构</em>。所有java文件必须经过“编译”转成class文件之后才会被<em>jvm</em>所识别和运用。那么我们开始了解一下<em>类文件</em>也就是class文件的<em>结构</em>。也就是我们写的java文件最终会被编译成什么样?那种格式? 本文讲解内容借鉴了《Java 虚拟机规范(Java SE 7 版)》第四章。如果有兴趣可以自行观赏本书,对您以后的开发大有裨益。 1、<em>类文件</em>介绍 每一个 Clas
jvm原理(26)字节码访问标志与字段表详解
先看一下java字节码的<em>结构</em>: 图1: 图2: 图3: Class字节码中有2中数据<em>结构</em> 字节数据直接量:这是基本的数据类型。共细分为u1、u2、u4、u8四种,分别代表连续的1个字节 、2个字节、四个字节、8个字节组成的整体数据。 表(数组):表示由多个基本数据或其他表,按照既定顺序组成的大的数据集合。表是有<em>结构</em>的, 它的<em>结构</em>体现在:组成表的成分所在的位置和顺序都是已...
JVM类加载器原理与自定义类加载器
一、类加载器原理 JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据<em>结构</em>,在堆中生成一个代表这个类的java.lang.Class 对象,作为方法区类数据的访问入口。 二、类缓存 标准的Java SE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间。不过,JVM垃圾收集器可以回收这些Class过象。 三
java类文件结构(笔记)
Class文件是一组8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部都是程序运行的必要数据,没有空隙存在。当遇到需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储。 根据Java虚拟机规范的规定,Class文件格式采用一种类似于C语言<em>结构</em>体的伪<em>结构</em>来存储的,...
如何通过JAVA代码获取JVM相关信息
最近一直在排查JVM内存问题,所以对该方面进行了一定的整理,我们可以通过ManagementFactory可以获取当前JVM的相关运行信息,对应用进行监控。 下面的代码一部分网上整理(太懒,别人有的干嘛自己写的),一部分自己查看API获取,希望对大家工作种有帮助,JVM的相关知识就不再赘述了。 import java.lang.management.ClassLoadingMXBean; im...
【JVM第三篇】:Class文件中的常量池详解(上)
NO1.常量池在class文件的什么位置? &amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;我的上一篇
新手ubuntu下已成功安装hadoop情况下,安装eclipse打开失败出现JVM terminated. Exit code=1解决方法
最初以为是环境变量配置问题导致的出错。经过一番百度后发现,由第三行看出eclipse需要的是jdk1.8。而自己的JDK是1.7的,而刚从Eclipse官网下载的Eclipse是最新版的,支持的JDK为1.8,所以导致错误。 查询本机jdk版本,指令如下: $ java -version 解决方法如下: 方法一: 更新jdk 将安装hadoop时下载的OpenJDK7升级为Open...
启动MyEclispe时出现 JVM terminated. exit code=-1的问题,无法启动。
启动MyEclipse时却出现 JVM terminated. exit <em>code</em>=-1的问题,导致软件无法启动,不要一遇到问题就哭着喊着要重装好吗,其实不用这么麻烦,这有现成的解决办法,记得备份。原因及解决办法: 1、内存设置过大导致 打开文件myeclipse.ini,一般位于MyEclipse安装目录下,找到这一行,”-Xmx256m”,修改后面
深入理解Java虚拟机--Java对象的内存结构
目录 对象内存<em>结构</em> 没有继承的对象<em>属性</em>排布 有继承的对象<em>属性</em>排布 如何计算对象大小 创建一个含有premain()方法的Java 类。 将创建好的Java类打成一个jar包 修改JVM启动配置 测试样例 参考书籍:《Java特种兵(上册)》 对象内存<em>结构</em> Class文件以字节码的形式存储在方法区当中,用来描述一个类本身的内存<em>结构</em>。当使用Class文件新建对象时,对象实例的...
类文件结构_class类文件的的结构
跨平台的实现Java诞生之初提出一个口号&quot;一次编写,到处运行&quot;。与平台无关的思想最终实现在操作系统的应用层上:Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现一次编写,到处运行。实现语言无关性(java虚拟机上可以运行Scala等其他语言)仍然是虚拟机和字节码的存储格式.java 虚拟机不和任何语言绑定,只是和Cl...
JVM堆内存结构分配
JVM的堆内存分为新生代(Young Generation)和旧生代(Old Generation)。新生代分为Eden区和Survivor区。Survivor区分为From Survivor和To Survivor。如图: 从上图可以看出,新生代通常占JVM堆内存的1/3,因为新生代存储都是新创建的对象,比较小的对象,而老年代存的都是比较大的,活的久的对象,所以老年代占JVM堆
【JAVA】类文件结构
                                                  JAVA<em>类文件</em><em>结构</em> 声明:本博客只是把读《深入理解JAVA虚拟机》中“JAVA<em>类文件</em><em>结构</em>”章节的过程记录下来,很多文字描述与图都是书中原文的内容。 1、任何一个类的class文件都对应这唯一一个类或者接口的定义信息。但反过来说类和接口不一定得定义在文件里,也可以由类加载器直接生成。 2、Cla...
JVM运行时栈帧结构
栈帧是用于支持虚拟机进行方法调用和方法执行的数据<em>结构</em>,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态链接、方法返回地址等信息。 局部变量表: 一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量。局部变量表的容量以变量槽(variable slot)为最小单位。 操作数栈: iadd表示两个int值相加 动态链接:运行期间转
JVM总结--JVM体系结构
一. 虚拟机         虚拟机是模拟执行某种指令集体系<em>结构</em>(ISA)的软件,是对操作系统和硬件的一种抽象。 图1 计算机系统中的抽象         计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(或者是依赖倒转原则),通过一层抽象提取底层实现中共性的部分,底层实现这个抽象并完成自己个性的部分。也就是说通过一个抽象层次来隔离底层的不同实现。虚拟机规
java JVM运行时栈帧结构
JVM中数据区域分为虚拟机栈、JAVA堆、方法区、运行时常量池、程序计数器(PC寄存器)这几类。在这五类中,虚拟机栈用来表示各个线程中方法执行情况的区域,而栈帧是虚拟机栈中的栈元素。栈帧是用于支持虚拟机进行方法调用和方法执行的数据<em>结构</em>。每一个方法从调用开始到执行完成的过程都可以看作是一个栈帧于虚拟机栈中从入栈到出栈的过程。一个线程中有很多个栈帧,只有位于这个栈最上方的栈帧才是有效的,最上方栈顶的栈帧
JVM体系结构-----深入理解内存结构
一、概述        内存在计算机中占据着至关重要的地位,任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行。与C和C++相比,使用Java语言编写的程序并不需要显示的为每一个对象编写对应的内存分配和内存回收等相关的函数,这主要是得益于JVM的自动内存管理机制,使得Java开发人员可以从频繁的体力劳动中解放出来,只关注与自身的业务即可。        尽管JVM的自动...
JVM加载class文件的原理机制
JVM加载class文件的原理机制 Java中的所有类,必须被装载到<em>jvm</em>中才能运行,这个装载工作是由<em>jvm</em>中的类装载器完成的,类装载器所做的工作实质是把<em>类文件</em>从硬盘读取到内存中
JVM解读(一):JVM体系结构
JVM全称是java Virtual Machine(java虚拟机),通过模拟一个计算机来完成一个计算机具有的功能 JVM屏蔽了与各个计算机平台相关的软件和硬件差异,所以JVM能够跨计算机体系<em>结构</em>来执行java字节码。 JVM体系<em>结构</em>JVM的基本组成 (1)指令集:JVM指令集 (2)类加载器:在<em>jvm</em>启动时或者类在运行时将需要的class加载到JVM中 (3)执行引擎:负责执行cla
JVM(11)——运行时栈帧结构
1. 概述 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的<em>结构</em>体系,并且能够执行那些不被硬件直接支持的指令集格式。 在不同的虚拟机实现里面,执行引擎在执行Java代码的时候可能有解释执行和编译执行两种选择,也可能两者兼备,甚至还...
Java8 JVM参数解读
我们知道java虚拟机启动时会带有很多的启动参数,Java命令本身就是一个多参数的启动命令。那么具体JVM启动包含哪些参数呢?这篇文章针对java8的情况做一篇汇总解读,包含大多数常见和不常见的命令参数,过于小众的就不写了。 JVM参数官网:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.ht...
SQL教程SQL教程下载
SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程SQL教程 相关下载链接:[url=//download.csdn.net/download/callzzz222/2029680?utm_source=bbsseo]//download.csdn.net/download/callzzz222/2029680?utm_source=bbsseo[/url]
西门子S7-200CN 系列PLC解密软件2010版下载
开发背景: 着重为西门子S7-200CN解密而设计!虽然还是未能实现PPI直读CN,但是以屡败屡战而自勉,结合现在CN解密特征做了更新,可以探测CN解密时需要的一些相关数据,比如我们要获得plc的版本号、加密等级、地址、通讯速率等,无需使用其他工具,只用这一个软件就可以轻松搞定了!带有地址搜索功能,支持多站解密,使用中有什么问题请及时反馈給我,以便更正。本软件新增了多站解密功能,利用《地址搜索》可以找到网络内的所有plc,可以逐个解密,逐个显示出密码,这是早期的老版本所不具备的功能。 控件问题: 对于菜鸟级的解密网友,还有说软件缺少Mscomm32.ocx控件的,打开软件时会有错误提示,关于 相关下载链接:[url=//download.csdn.net/download/plcjiemi/2833419?utm_source=bbsseo]//download.csdn.net/download/plcjiemi/2833419?utm_source=bbsseo[/url]
EMC红宝书 中文版下载
EMC红宝书,比较深入的介绍了EMC相关知识,有兴趣的朋友可以看看 相关下载链接:[url=//download.csdn.net/download/huang_royal/2122514?utm_source=bbsseo]//download.csdn.net/download/huang_royal/2122514?utm_source=bbsseo[/url]
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java中jvm学习视频 java 学习jvm
我们是很有底线的