运行时数据区域:
- 程序计数器
- java虚拟机栈
- 线程私有
- 生命周期和线程相同
- 局部变量表、操作数桟、动态连接、方法出口等
- java方法执行的线程内存模型
- 本地方法栈
- 虚拟机使用到本地方法服务
- java堆
- 被所有线程共享的一块内存区域,在虚拟机启动时创建
- 存放对象实例
- 方法区
- 各个线程共享的内存区域
- 存储已经被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存的等
- 别名:非堆
- 运行时常量池
- 是方法区的一部分
- 直接内存
- NIO:基于通道与缓存区的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在java堆里面的DirectBuffer对象作为这块内存的引用进行操作
- 避免了java堆和Native堆中来回复制数据,在一定场景下显著提高了性能