什么是程序计数器
Java堆:主要用来保存对象的实例和数组等
本地内存可以理解为 操作系统 的内存区域
虚拟机栈的几个相关问题
只要有可能多个线程操作一个对象,就是线程不安全的
栈内存溢出的典型问题:无限递归调用
方法区就是元空间,主要存储 类的信息 和 常量池
jdk1.7之前叫方法区,存储在堆中
jdk1.8之后叫元空间,存储在本地内存中,就是操作系统的一块内存区域中
方法区存储的类的信息:
方法区存储的常量池:
常量池:是编译后的字节码文件中的,在 .class文件中
运行时常量池:类被加载后,把常量池中的符号地址变为真实地址后 的常量池
直接内存
Java是没有数据拷贝的功能的,Java底层也是调用的操作系统的方法
首先肯定是分批次拷贝
常规的IO流程:操作系统先拷贝到 系统缓存区,然后再传到 Java缓冲区 。这个过程重复多次,增加了耗费的时间
使用直接内存:这块内存,Java代码可以访问,操作系统也可以直接访问,把拷贝的数据放到这块区域,就减少了耗费的时间