美文网首页
方法表集合的整体理解

方法表集合的整体理解

作者: Shaw_Young | 来源:发表于2021-08-11 11:05 被阅读0次

methods:指向常量池索引集合,它完整描述了每个方法的签名

  • 在字节码文件中,每一个method_info项都对应着一个类或者接口中的方法信息。比如方法的访问修饰符(public、private或protected),方法的返回值类型以及方法的参数信息等。
  • 如果这个方法不是抽象的或者不是native的,那么字节码中会体现出来。
  • 一方面,methods表只描述当前类或者接口中声明的方法,不包括从父类或父接口继承的方法。另一方面,methods表有可能会出现由编译器自动添加的方法,最典型的便是编译器产生的方法信息(比如:类(接口)初始化方法<clinit>()和实例初始化方法<init>)。

使用注意事项

在Java语言中,要重载(Overload)一个方法,除了要与原方法具有相同的简单名称之外,还要求必须拥有一个与原方法不同的特征签名,特征签名就是一个方法中各个参数在常量池中的字段符号引用的集合,也就是因为返回值不会包含在特征签名之中,因此Java语言里无法仅仅依靠返回值的不同来对一个已有方法进行重载。但在Class文件格式中,特征签名的范围更大一些,只要描述符不是完全一致的两个方法就可以共存。也就是说,如果两个方法相同的名称和特征签名,但返回值不同,那么也是可以合法共存于同一个class文件中。

也就是说,尽管Java语法规范并不允许在一个类或者接口中声明多个方法签名相同的方法,但是和Java语法规范相反,字节码文件中却恰恰允许存放多个方法签名相同的方法,唯一的条件就是这些方法之间的返回值不能相同。

梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

相关文章

  • 方法表集合的整体理解

    methods:指向常量池索引集合,它完整描述了每个方法的签名 在字节码文件中,每一个method_info项都对...

  • 字段表集合的整体理解

    fields 用于描述接口或类中声明的变量。字段(fields)包括类级变量以及实例级变量,但是不包括方法内部、代...

  • MongoDB | 2. 集合(表)操作

    查看集合(表) 创建集合(表) 直接插入数据创建 使用系统方法创建 删除集合

  • 属性表集合的整体解读

    方法表集合之后的属性表集合,指的是class文件所携带的辅助信息,比如该class文件的源文件的名称。以及任何带有...

  • java字节码文件结构解析

    魔数与版本 常量池 类、父类和接口索引集合 字段表集合 方法表集合 属性表集合 Class文件(即字节码文...

  • Java字节码方法表

    引言 因为字段表和方法表的结构类似,所以我们直接分析Java字节码的方法表内容,理解了方法表,自然就理解了字段表 ...

  • 集合

    1 集合的定义 集合是由一个和多个元素构成的整体,在 SQL Server 中的表就代表着事实集合, 而其中的查询...

  • LUA学习——元表与元方法

    元表,理解为对table的预定义的操作集合。

  • 集合

    集合框架 迭代器 :Iterator 泛型机制 集合操作——线性表 Collections.sort()方法的调用...

  • 单个数据库内分表

    分表当成其他表,便于理解。查询方法就用多表查询的方法就行。

网友评论

      本文标题:方法表集合的整体理解

      本文链接:https://www.haomeiwen.com/subject/owlfbltx.html