无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)

来源:国外服务器 在您之前已被浏览:1 次
导读:目前正在解读《无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)》的相关信息,《无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)》是由用户自行发布的知识型内容!下面请观看由(国外主机 - www.2bp.net)用户发布《无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)》的详细说明。
笨笨网美国主机,w ww.2 b p .n e t
()”方法和实例构造器“ ()”方法

8.属性表(attribute_info)在前面的讲解之中已经出现过数次,Class文件、字段表、方法表都可以携带自己的属性表集合,以描述某些场景专有的信息。《Java虚拟机规范》允许只要不与已有属性名重复,任何人实现的编译器都可以向属性表中写入自己定义的属性信息,Java虚拟机运行时会忽略掉它不认识的属性。

字节码指令

Java字节码指令就是Java虚拟机能够听得懂、可执行的指令,可以说是Jvm层面的汇编语言,或者说是Java代码的最小执行单元。

javac命令会将Java源文件编译成字节码文件,即.class文件,其中就包含了大量的字节码指令。

Java虚拟机采用面向操作数栈而不是面向寄存器的架构(这两种架构的执行过程、区别和影响将在第8章中探讨),所以大多数指令都不包含操作数,只有一个操作码,指令参数都存放在操作数栈中。

字节码指令分类:

存储和加载类指令:主要包括load系列指令、store系列指令和ldc、push系列指令,主要用于在局部变量表、操作数栈和常量池三者之间进行数据调度;(关于常量池前面没有特别讲解,这个也很简单,顾名思义,就是这个池子里放着各种常量,好比片场的道具库)

对象操作指令(创建与读写访问):比如我们刚刚的putfield和getfield就属于读写访问的指令,此外还有putstatic/getstatic,还有new系列指令,以及instanceof等指令。

操作数栈管理指令:如pop和dup,他们只对操作数栈进行操作。

类型转换指令和运算指令:如add/div/l2i等系列指令,实际上这类指令一般也只对操作数栈进行操作。

控制跳转指令:这类里包含常用的if系列指令以及goto类指令。

方法调用和返回指令:主要包括invoke系列指令和return系列指令。这类指令也意味这一个方法空间的开辟和结束,即invoke会唤醒一个新的java方法小宇宙(新的栈和局部变量表),而return则意味着这个宇宙的结束回收。

公有设计,私有实现

虚拟机实现的方式主要有以下两种:

·将输入的Java虚拟机代码在加载时或执行时翻译成另一种虚拟机的指令集;

·将输入的Java虚拟机代码在加载时或执行时翻译成宿主机处理程序的本地指令集(即即时编译器代码生成技术)。

精确定义的虚拟机行为和目标文件格式,不应当对虚拟机实现者的创造性产生太多的限制,Java虚拟机是被设计成可以允许有众多不同的实现,并且各种实现可以在保持兼容性的同时提供不同的新的、有趣的解决方案。

class文件的变化

Class文件格式所具备的平台中立(不依赖于特定硬件及操作系统)、紧凑、稳定和可扩展的特点,是Java技术体系实现平台无关、语言无关两项特性的重要支柱。

Class文件是Java虚拟机执行引擎的数据入口,也是Java技术体系的基础支柱之一。

虚拟机类加载机制

Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。

无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)


类的生命周期

java编译时不像其他语言需要连接,类型的加载、连接和初始化过程都是在程序运行期间完成的。编写一个面向接口的应用程序,可以等到运行时再指定其实际的实现类,用户可以通过Java预置的或自定义类加载器,让某个本地的应用程序在运行时从网络或其他地方上加载一个二进制流作为其程序代码的一部分。运行时加载广泛应用于Java程序之中。

无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)


《Java虚拟机规范》则是严格规定了有且只有六种情况必须立即对类进行“初始化”(而加载、验证、准备自然需要在此之前开始):

1)遇到new、getstatic、putstatic或invokestatic这四条字节码指令时,如果类型没有进行过初始化,则需要先触发其初始化阶段。能够生成这四条指令的典型Java代码场景有:·使用new关键字实例化对象的时候。·读取或设置一个类型的静态字段(被final修饰、已在编译期把结果放入常量池的静态字段除外)的时候。·调用一个类型的静态方法的时候。

笨笨网美国主机,w ww.2 b p .n e t
提醒:《无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)》最后刷新时间 2025-03-21 11:13:48,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《无法安装java虚拟机是什么意思(附java虚拟机所有知识点)(2/16)》该内容的真实性请自行鉴别。