文章预览
阿里妹导读 上一篇文章《你知道Java类是如何被加载的吗?》分析了HotSpot是如何加载Java类的,本文再来分析下Hotspot又是如何解析、创建和链接类方法的。 一、前言 之前写了一篇文章《 你知道Java类是如何被加载的吗? 》,分析了HotSpot是如何加载Java类的,干脆趁热打铁,再来分析下Hotspot又是如何解析、创建和链接类方法的。 二、Class文件中的Java方法 Java类在编译后会被编译成 Class 文件。 先来看下 Class 文件的结构: ClassFile { ...... u2 methods_count; method_info methods[methods_count]; ...... } methods_count 记录了 Class 文件中一共有多少方法。 methods 是个数组,包含 Class 文件的所有方法。 methods 的数组类型为 method_info。 每个 method_info 对应一个 Java 方法。 method_info { u2 access_flags; u2 name_index; u2 descriptor_index; u2 attributes_
………………………………