摘要: 我们知道 在jdk8 之后,Hotspot 将 方法区的实现改为元空间,直接使用本地内存,下面就来详细了解一下 1. 直接内存的概述 不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 起源于NIO,通过存在堆中的D 阅读全文
posted @ 2020-12-04 17:08 哈哈丶丶 阅读(351) 评论(0) 推荐(1) 编辑
摘要: 1. 对象的实例化 1.1 对象的实例化方式 new:最常见的方式,直接new 或者 单例模式的 getInstance 方法等 Class的newInstance方法:反射方式, 在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为 public Constructor的new 阅读全文
posted @ 2020-12-04 16:23 哈哈丶丶 阅读(195) 评论(1) 推荐(1) 编辑
摘要: 1. 栈 堆 方法区的交互关系 前面的文章中已经了解了 栈 ,堆, java 运行时区中另一个非常重要的区域就是 方法区 那么这三者又有什么关系呢? 与线程共享与否的角度 从Person person = new Person(); 看 Person 类的 .class 信息存放在方法区中 pers 阅读全文
posted @ 2020-12-04 16:20 哈哈丶丶 阅读(446) 评论(0) 推荐(2) 编辑
摘要: 1. 堆的核心概述 1.1 概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM ,但是进程包含多个线程,他们是共享同一堆空间的, 前面所学习到的 程序计数器 本地方法栈, 虚拟机栈, 是每个线程独立占有的一份, 而 堆空间 和后面所说的 方法区, 则是 所有线程共享的, 如下图 , 阅读全文
posted @ 2020-12-04 14:03 哈哈丶丶 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 1 本地方法 简单地讲,一个Native Method是一个Java调用非Java代码的接囗 一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。 这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C中,你可以用extern 告知C编译器去 阅读全文
posted @ 2020-12-04 10:03 哈哈丶丶 阅读(127) 评论(0) 推荐(1) 编辑