JAVA虚拟机规范 java SE 7 读书笔记

Java虚拟机规范 Java SE 8版 - Java虚拟机编译器 Java虚拟机规范JavaSE8版-Java虚拟机编译器 Java虚拟机是为支持Java编程语言而设计的。Oracle的JDK软件包括两部分内容:一 部分是将Java源代码编译成Java虚拟机的指令集的编译器,另一部分是用于实现Java虚拟 机的运行时环境。理解编译器是如何与Java虚拟机协同工作的,对编译器开发人员来说很有 好处,同样也有助于理解Java虚拟机本身。本章内容用于示意,并不属于规范... 阅读详情
方法调用的四条指令:
1)invokevirtual
2)invokeinterface
3)invokespecial (指令用于调用一些需要特俗处理的实例方法,包括实例初始化方法、私有方法和父类方法);
4)invokestatic


Java虚拟机可以支持方法级的同步和方法内部一段指令序列的同步,这两种同步结构都是使用管程(Monitor)来支持的。
1)方法级的同步时隐式,即无需通过字节码指令来控制的,它实现在方法调用和返回操作之中。
虚拟机可以从方法常量池中的方法表结构(method_info structure)中的ACC_SYNCHRONIZED访问标志是否被设置,如果设置了,执行线程将先持有管程,然后再执行方法,最后在方法完成时释放管程。
2)同步一段指令集序列通常是由Java语言中的synchronized块来表示的,Java 虚拟机的指令集中有monitorenter和monitorexit两条指令来支持synchronized关键字的语义。


Java 虚拟机通常基于操作数栈来进行算术运算(只有iicn指令例外,它直接对局部变量进行自增操作)


所有的invokespecial指令调用的方法都需要this作为第一个参数,保存在第一个局部变量之中。


如果编译器要调用某个方法,必须先产生这个方法描述符,描述符中包含了方法实际参数和返回类型。


无论方法调用指令的操作数,还是putfield,getfield指令的操作数都并非类实例中的地址偏移量。编译器会为这些字段生成符号引用,保存在运行时常量池之中。


编译器会使用tableswitch和lookupswitch指令生成switch语句的编译代码。
tableswitch指令用于表示switch结构中的case语句块,可以高效地从索引表中确定case语句块的分支偏移量。


catch语句块会使编译器在异常表中增加一个成员,即一个异常处理器。


没有任何调用指令可以调用到<clinit>,也仅有invokespecial可以调用<init>。


如果一个方法描述符是有效的,那么它对应的方法的参数列表总长度小于等于255.


参数this的传递,是由Java虚拟机实现在调用实例方法所使用的指令中实现的隐式传递。


接口中的所有字段都具有ACC_PUBLIC,ACC_STATIC和ACC_FINAL标记,也可能被设置ACC_SYNTHETIC标记。


栈映射帧,类型状态


格式检查本应独立于字节码验证,他们都是Class文件验证过程的一部分,但由于历史原因,格式检查与字节码验证曾经混淆在一起,因为它们两者都是完整性检查的一种形式。


Java 虚拟机实现会在文件的链接阶段对Class文件进行必要的校验。


数组类型没有外部的二进制表示;它们都是由Java虚拟机创建,而不是通过类加载器加载的。


类或接口的运行时包结构由包名及类或接口的定义类加载器来决定。


通常使用<N,Ld>来表示一个类或接口,这里的N表示类或接口的名称,Ld表示类或接口的定义类加载器。



Java SE 8虚拟机规范详解:中文版+实践指南 JVM负责将Java源代码编译后的.class文件转换成机器码执行。它不仅包含了基本的执行引擎,还包括一系列运行时数据区和垃圾回收机制。JVM的存在,使得Java程序可以一次编写,到处运行,这是它的一大核心优势。Java并发编程还提供了用于控制流的并发组件,例如::允许一个或多个线程等待直到在其他线程中执行的一组操作完成。java// ...执行某些操作}).start();try {// 等待所有操作完成。 阅读详情

相关推荐

Java虚拟机规范(Java SE 7)中文版

《Java虚拟机规范(Java SE 7版)》是Java领域最重要和最权威的著作之一,由Oracle官方发布,基于Java SE 7,对最新的Java虚拟机规范进行了完整且详细的讲解,是深度了解Java虚拟机实现细节的必读之作。由国内几位资深的Java技术专家联袂翻译。《Java虚拟机规范(Java SE 7版)》共7章,第1章从宏观的角度介绍了Java虚拟机与Java的关系与发展历程。第2章概览了Java虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,涉及常量、局部变量、控制结构、算术运算、参数接收、方法调用、数组、操作数栈异常处理、同步与注解等。第4章深入分析了用来表示编译后的类和接口的class文件格式,主要包括ClassFile结构、描述符与签名、常量池、字段、方法、属性、代码约束与class文件校验等。第5章定义了Java虚拟机启动以及类和接口的加载、链接和初始化过程。第6章阐释并列举了Java虚拟机指令集。第7章提供了一张以操作码值为索引的Java虚拟机操作码助记符表。

java虚拟机规范7_Java虚拟机规范(Java SE 7)笔记

工作过一段时间才发现不用"管他是怎么实现的"这些话都是狗p,以下是看 Java虚拟机规范(Java SE 7) 笔记和思考,个人也觉得先看规范在学习深入理解等系列会更容易,节约篇幅具体定义不抄了第一章简介jvm:只与特定的二进制文件格式(class)有关联,java硬件无关性与操作系统无关的关键部分实现:HotSpot,jrockit,ibmJvm等简单的说,实现jvm只需要正确读取class文件...

weixin_42106357的博客 295

Java虚拟机规范(Java SE 7).pdf

Java虚拟机规范(Java SE 7).pdf

发布《Java虚拟机规范 (Java SE 7 中文版)》

《Java虚拟机规范 (Java SE 7 中文版)》是一份根据《Java Virtual Machine Specification (Java SE 7)》翻译的、非官方的、以Open Document形式发布的文档。    本译文由ItEye社区三位水友IcyFenix、wupuyuan、langyu合作完成,我们的翻译工作完全基于技术研究目的,任何人也都可以在以技术研究为目的前提下任

小九的专栏 1601

Java虚拟机规范中文版(JavaSE7).pdf

JavaSE7虚拟机规范中文版,包括虚拟机结构,字节码编译,字节码文件格式,字节码加载,虚拟机指令集等

java虚拟机规范7和8

Java虚拟机规范8 高清中文.pdf和Java虚拟机规范7 高清中文.pdf,可以珍藏的。

java 语言规范

随着7月28日,也就是Java SE 7预定的发布日期越来越近,相关的一些规范也已得到或即将得到批准。  这里主要关注的是下面几个规范:  JSR 336: Java™ SE 7 Release Contents  转载:http://rednaxelafx.iteye.com/blog/1081626 JSR 901: Java™ Language Specificati

shuhuai007的专栏 3085

Java虚拟机规范(Java SE 7)

Java虚拟机规范(基于Java SE 7) P.D.F高清扫描版

终极指南:如何深入理解Java SE 11虚拟机规范的中文翻译版

想要真正掌握Java编程的底层原理吗?🤔《Java虚拟机规范》是每个Java开发者必须理解的核心文档,而Java虚拟机规范中文翻译项目为您提供了完整的Java SE 11版规范中文翻译及示例。这个开源项目将官方的Java虚拟机规范翻译成中文,让中文开发者能够更轻松地理解Java虚拟机的内部工作机制和实现细节。 ## 📚 为什么需要Java虚拟机规范中文翻译? 对于大多数中文开发者来说,阅读

gitblog_00488的博客 948

java虚拟机规范(java SE7)

java虚拟机规范,高清PDF版本,含有目录结构:第一章:引言; 第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java堆,方法去,运行时常量池,本地方法栈); 第三章:为java虚拟机编译; 第四章:Class文件格式; 第五章:加载、链接与初始化

离散系统傅里叶变换的常用结论证明

本文介绍了离散系统傅里叶变换的三个重要结论:1)时域卷积对应频域相乘(公式1-3);2)时域相乘对应频域卷积(公式4-6);3)帕塞瓦尔定理(公式7)及其广义形式,证明信号能量在变换域保持不变。文末提供了MATLAB卷积运算演示程序,通过动画展示离散信号卷积过程(翻转、平移、相乘、累加),并以方波信号为例给出运行结果图。该程序直观呈现了卷积运算的步骤与结果。

newtton的博客 1304

Java 虚拟机规范 (Java SE 7 版) 下载

译者序 从1999年4月出版的《Java虚拟机规范(第二版)》至今,已经超过12年,虽然此规范在 JDK 5发布的时候作了较大的更新,但却始终没有发布完整的规范。在今年6月28 日,最新的 《Java虚拟机规范(Java SE 7版)》终于完成并在7月份正式发布。对于想了解Java虚拟机的程序员来说,《Java虚拟机规范》是必须阅读的,对于想深入了解Java语言细节的程序员, 阅读《Java虚

backtracker的专栏 1226

代码审计工具学习之Seay(安装以及初步认识)

目录 1.1名词解释 1.2代码审计的重要性 1.3代码审计的步骤 1.4代码审计的内容 1.5常见的代码审计工具 2 Seay 2.1什么是Seay 2.2Seay的安装过程 3典型漏洞分析 3.1什么是命令注入漏洞 3.2 如何理解命令注入漏洞 3.3 如何防御命令注入漏洞 4 利用工具对命令注入漏洞进行分析 4.1DVWA靶场命令注入漏洞分析 4.2 Pikachu靶场命令注入漏洞分析 1.1名词解释 软件代码审计是对编程项目中源代码的全面...

weixin_52515588的博客 2万+

[java 深入]《java 虚拟机规范 se7》 阅读笔记

[java 深入]《java 虚拟机规范 se7》 阅读笔记

edwardqiang的博客 383

Zemax API 与 Python 的独立应用程序

Zemax 提供了多个 python 示例代码,位于 Documents\Zemax\ZOS-API Sample Code\Python。使用以下代码,它们保存在 ZOS 文件目录中:/Documents\Zemax\Samples\API\Python。此代码块定位已安装的 OpticStudio 版本,确定根目录,创建命名空间和类,加载局部变量。如果定义的镜头需要一些特殊的编辑,例如反转,一种快速方法是从位于编程选项卡的 ZOS-API 语法帮助中找到相应的命令。重新运行整个代码块,镜头方向会改变。

jkh920184196的博客 1978

matinal:SAP ABAP 关于sftp的发送接收源代码

如果您将目标系统的凭据存储在该 RFC 连接中,您可以安排程序并将其作为后台作业运行:凭据将从 SM59 配置中获取,并且在文件传输期间不会提示您输入它们。这尤其适用于安全问题:您有责任为您的编码添加安全功能,并相应地配置您的系统(例如,保护您的系统免受病毒侵害)。注意:在创建自己的程序时,请特别注意示例代码中以“@CUSTOMER”开头的注释,因为您需要实现自己的逻辑。本说明为您提供示例编码以支持您创建自己的程序。在 STRUST 事务中,您维护了一个 PSE 并导入了您要发送的文件的最终收件人的证书。

matinal 當冬夜漸暖 。公众号:matinal 1333

Java 虚拟机规范 (Java SE 7 版)

  从1999年4月出版的《Java虚拟机规范(第二版)》至今,已经超过12年,虽然此规范在 JDK  5发布的时候作了较大的更新,但却始终没有发布完整的规范。在今年6月28 日,最新的 《Java虚拟机规范(Java SE  7版)》终于完成并在7月份正式发布。对于想了解Java虚拟机的程序员来说,《Java虚拟机规范》是必须阅读的,对于想深入了解Java语言细节的程 序员, 阅读《Ja...

chenxingzi的博客 333

用宝塔面板+CentOS 7.6,30分钟搞定DNF手游私服搭建(附全套资源下载)

本文详细介绍了如何使用宝塔面板和CentOS 7.6在30分钟内快速搭建DNF手游私服。通过图形化界面操作,无需复杂命令,即可完成服务端部署、MySQL数据库配置及客户端适配,适合Linux新手快速上手。

weixin_33737774的博客 605

JAVA SE 7虚拟机规范

http://files.cnblogs.com/files/zhuYears/Java%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%A7%84%E8%8C%83%EF%BC%88JavaSE7%EF%BC%89.pdf

cnbird's blog 1095

海康Camera MVS Linux SDK二次开发封装ROS packge过程记录(c++)

https://www.hikrobotics.com/machinevision/service/download?module=0

weixin_41965898的博客 2万+

ParaView: GUI 轴网格

ParaView: GUI 轴网格

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1923
上一篇: OpenCV 之Hello world篇
下一篇: 如何定位Android NDK开发中遇到的错误
Superr爬爬虫
博客等级 码龄19年 72粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值