专注虚拟机与编译器研究

2020年8月8日

第6.3篇-klassVtable与klassItable类的介绍

摘要: klassVtable与klassItable类用来实现Java方法的多态,也可以叫动态绑定,是指在应用执行期间通过判断接受对象的实际类型,根据实际类型调用对应的方法。C++为了实现多态,在对象中嵌入了虚函数表vtable,通过虚函数表来实现运行期的方法分派,这在之前介绍HotSpot的二分模型时简 阅读全文

posted @ 2020-08-08 10:17 鸠摩(马智) 阅读(1310) 评论(0) 推荐(0) 编辑

第6.2篇-方法解析

摘要: 在ClassFileParser::parseClassFile()函数中解析完字段并完成每个字段的布局后,会继续对方法进行解析,相关的处理语句如下: bool has_final_method = false; AccessFlags promoted_flags; promoted_flags. 阅读全文

posted @ 2020-08-08 09:35 鸠摩(马智) 阅读(532) 评论(0) 推荐(0) 编辑

第6.1篇-方法解析之Method与ConstMethod介绍

摘要: Method中的一个重要字段为_intrinsic_id,为了追求极致的性能,将这些方法叫固有方法(Intrinsic Method)。所有的固有方法都能在classfile/vmSymbols.hpp中找到,一个绝佳的例子是java.lang.Math。对于Math.sqrt(),用Java或者J 阅读全文

posted @ 2020-08-08 07:39 鸠摩(马智) 阅读(1094) 评论(0) 推荐(0) 编辑

第5.5篇-使用HSDB查看类变量的内存布局

摘要: 如下的实例来自Hotspot 垃圾回收之oop_iterate(一) 源码解析,我做了一些微小的改动。 查看如下实例的内存布局: package com.test; public class Parent { private Integer a = 1; protected long b = 2; 阅读全文

posted @ 2020-08-08 07:11 鸠摩(马智) 阅读(737) 评论(0) 推荐(0) 编辑

导航