2019年8月20日
摘要: 由于我们的主类代码如下: public class KVMTest{ public static void main(String[] args){ System.out.println("success"); } }123456789因此在runClinit方法中,直接将状态改为CLASS_REA 阅读全文
posted @ 2019-08-20 18:09 激流勇进1 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 此处同样,对应的字节码是CUSTOMCODE,其最终调用的是initInitialThreadBehaviorFromThread.此处的代码如下: static voidinitInitialThreadBehaviorFromThread(FRAME_HANDLE exceptionFrameH 阅读全文
posted @ 2019-08-20 18:09 激流勇进1 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 时间:2019年8月4日14:17:06问题描述:看下边的小例子: data class Man(val name: String, val age: Int, val type: Int) fun main(args: Array<String>) { val list = mutableList 阅读全文
posted @ 2019-08-20 18:08 激流勇进1 阅读(4167) 评论(0) 推荐(0) 编辑
摘要: 此处初始化的步骤和上文中介绍的一样,也是调用runClinit方法.首先设置初始化线程为CurrentThread,然后由于其父类Object此时的状态为CLASS_READY,因此就不需要初始化父类了.此处的代码如下: if ((thisClass->clazz.accessFlags & ACC 阅读全文
posted @ 2019-08-20 18:08 激流勇进1 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 对于String, System而言,其初始化过程和 Thread一致.而对于OutOfMemoryError而言,其继承结构如下: 因此对于OutOfMemoryError,会首先将状态改为4,然后尝试初始化VirtualMachineError,同样的VirtualMachineError将状态 阅读全文
posted @ 2019-08-20 18:08 激流勇进1 阅读(135) 评论(0) 推荐(0) 编辑