目录
内存管理是什么
Java的内存管理就是对象的分配和释放问题
分配 :内存的分配由程序完成的,程序员通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆中分配空间
释放 :对象的释放由垃圾回收机制决定和执行
GC需要监控每个对象的运行状态,包括对象的申请、引用、被引用、赋值等
JVM内存区域组成
从逻辑上可将JVM内存分为5个部分,主要分为被所有线程共享的内存区域和仅被当前线程独占的内存区域
线程共享的内存区域包括堆和方法区
线程独占的内存区域包括虚拟机栈,本地方法栈,程序计数器
写程序时,需要判断当前数据读写的是存在于哪类内存区域,如果存在的是线程共享的内存区域,那么就要考虑是否存在线程安全问题,如果存在线程独占的内存区域,就没关系
程序计数器PC
线程私有的内存区域
每个线程都有自己的一