摘要: HotSpot是基于c++实现,而c++是一门面向对象的语言,本身是具备面向对象基本特征的,所以Java中的对象表示,最简单的做法是为每个Java类生成一个c++类与之对应。但HotSpot JVM并没有这么做,而是设计了一个OOP-Klass模型,OOP(Ordinary Object Pointer)指的是普通对象指针,而Klass用来描述对象实例的具体类型。OPP就不在这里描述了,介绍一下位于方法区的Klass模型,加载到方法区的每个类都有一个与之对应的Klass类实例,这里的Klass类并不是Java语言层面的类,而是C++层面。 阅读全文
posted @ 2021-12-24 23:55 哲雪君! 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 常量池是字节码文件的一部分,主要存储了编译期间的各种字面量和符号引用(如下代码),这部分内容在类加载后会存放到运行时常量池中,常量池和运行时常量池一一对应。 阅读全文
posted @ 2021-12-24 23:54 哲雪君! 阅读(63) 评论(0) 推荐(0) 编辑
摘要: JVM虚拟机规范中虽然在逻辑上将方法区描述为堆区的一部分,但对于HotSpot虚拟机而言,还有一个别名Non-Heap(非堆),目的是与堆区分开。方法也是线程共享的区域,在JVM启动的时候被创建,并且,和堆区一样可以是逻辑上连续,物理上不连续的区域。 阅读全文
posted @ 2021-12-24 23:54 哲雪君! 阅读(77) 评论(0) 推荐(0) 编辑