--- title: Java SE笔记: java内存模型 date: 2016-07-21 22:00:00 updated: 2016-07-21 22:00:00 description: "java内存模型" categories: [个人笔记] tags: [Java, Java SE笔记] --- ![](/images/javase_1.jpg) ### 程序计数器: 当前线程所执行的字节码的行号指示器 ### 本地方法栈: 为虚拟机使用的native方法服务 ### java虚拟机栈Stack: 描述java方法执行的内存模型,每个方法被执行的时候同时创建一个栈帧用于存放局部变量、操作栈、动态链接、方法出口等信息。 `每个方法创建一个栈帧,栈帧存放了当前方法的信息,当方法调用完毕后,该方法的栈帧就被销毁了` ### Java堆: 被所有线程共享的一块内存区域,所有的对象实例以及数组都要在堆上分配,使用new关键字,就表示在堆上开辟一块新的存储区域 ### 方法区 线程共享的内存区域 存储已被虚拟机加载的类的信息、常量、静态变量即时编译器编译后的代码数据等。 ### GC(Garbage Collection垃圾回收器) Java的自动垃圾回收机制 程序员不需要手动的控制内存的释放。当JVM发觉内存资源紧张的时候,就会自动的清理无用对象(没有应用的对象)所占用的内存空间