新增的miranda方法& 新增的常量池entry

简介: 综上,miranda方法与常量池(constant pool)条目都是Java虚拟机处理Java类文件时所涉及的概念。miranda方法涉及虚拟方法的实现机制,而常量池条目涉及类文件的组成部分,以及JVM是如何在运行时处理和引用类文件中的不同项目的。这些机制确保了Java平台的强类型特性和运行时的灵活性。

首先,需要澄清“miranda方法”与“常量池entry”是对于不同方面的术语。miranda方法与Java编程语言的内部机制有关,而常量池(entry)则涉及Java类文件的结构。以下将分别对两者进行专业的解释。

Miranda 方法

在Java中,miranda方法是指在一个类中由于继承而必须存在,但在类本身的代码中并没有被明确实现的虚拟方法。这是Java抽象的一部分,可以说是Java多态性的一种体现。

Java在类继承的层次结构中,子类可以继承父类的方法。如果父类有一个没有具体实现(即abstract)的方法,子类就必须提供这一方法的具体实现。但有时候,一个类可能得到一个这样的方法,它既没有在父类中实现,也没有在当前类中实现。这样的方法被称为miranda方法。在类的方法解析期间,Java虚拟机(JVM)认为这些方法是“看不见的”,需要它们的签名在类加载时生成。

常量池 Entry

常量池(Constant Pool)是Java类文件结构的一部分。它是该文件中的一个表,包含了所有字面量和符号引用,这些引用指向类中定义的各种项如类和接口名、字段名以及其他类文件结构。

常量池中的每一项称为一个entry(条目)。常量池条目的类型有很多,包括如下几种:

  1. Class Info: 指向全限定类或接口名的UTF-8字符串。
  2. Fieldref Info: 包含类或接口中字段的符号引用。
  3. Methodref Info和Interface Methodref Info: 分别包含类中方法和接口方法的符号引用。
  4. String Info: 代表Java字符串实例。
  5. Integer Info和Float Info: 分别代表4字节数值。
  6. Long Info和Double Info: 分别代表8字节数值。
  7. Name and Type Info: 包含字段或方法的名称和描述符。
  8. Utf8 Info: 包含字符串的UTF-8编码。

在Java虚拟机(JVM)加载类文件时,它会解析这些常量池entry,并在必要时创建相应的内部结构。例如,在JVM首次使用特定的字段或方法时,它将解析对应的Fieldref或Methodref条目,确定类或接口的类型、名称以及方法或字段的签名。

综上,miranda方法与常量池(constant pool)条目都是Java虚拟机处理Java类文件时所涉及的概念。miranda方法涉及虚拟方法的实现机制,而常量池条目涉及类文件的组成部分,以及JVM是如何在运行时处理和引用类文件中的不同项目的。这些机制确保了Java平台的强类型特性和运行时的灵活性。

目录
相关文章
|
5月前
|
存储 Java
map中存储的是引用,而不是对象本身
该内容是关于Java编程中验证Map存储引用而非复制对象的示例。创建大型List导致内存增加,说明List确实占用空间。通过Person类示例,将不同对象放入Map,改变一个对象的属性后,比较原对象与Map中的键值对,发现两者相等,证明Map保存的是对象引用。
76 5
|
2月前
|
开发框架 .NET 编译器
C# 中的记录(record)类型和类(class)类型对比总结
C# 中的记录(record)类型和类(class)类型对比总结
|
Java 编译器 索引
JVM虚拟机-Class文件之字段表集合
JVM虚拟机-Class文件之字段表集合
JVM虚拟机-Class文件之字段表集合
JVM虚拟机-Class文件之方法表集合
JVM虚拟机-Class文件之方法表集合
JVM虚拟机-Class文件之方法表集合
|
C++
新建项无资源字典类型
新建项无资源字典类型
116 0
新建项无资源字典类型
有关使用Map结构替换掉复杂的if-else结构【项目使用】
有关使用Map结构替换掉复杂的if-else结构【项目使用】
203 0
|
Java 索引
【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )(二)
【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )(二)
131 0
【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )(二)
|
Java 数据挖掘 索引
【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )(一)
【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )(一)
155 0
【Java 虚拟机原理】Class 字节码二进制文件分析 五 ( 方法计数器 | 方法表 | 访问标志 | 方法名称索引 | 方法返回值类型 | 方法属性数量 | 方法属性表 )(一)
|
存储 Java 编译器
JVM14_Class文件结构细节、魔数、Class文件版本、常量池、访问标识(或标志)、类索引|父类索引|接口索引集合、字段|方法|属性表集合(二)
③. 如何确保高版本的JVM可执行低版本的class文件? ④. 常量池(class文件的基石) ①. 什么是常量池? ②. 常量池计数器 ③. 常量池表
123 0
JVM14_Class文件结构细节、魔数、Class文件版本、常量池、访问标识(或标志)、类索引|父类索引|接口索引集合、字段|方法|属性表集合(二)