最全总结"/>
JVM你了解吗?最全总结
JAVA内存模型图
1、程序计数器:记录当前线程所执行字节码的行号指示器
2、虚拟机栈(Stack):存放了当前线程调用方法的局部变量表、操作数栈、动态链接、方法返回值等信息
3、本地方法栈:为虚拟机使用的 Native 方法提供服务,后多与 JVM Stack 合并为一起
共享
4、 Java 堆(Heap):占据了虚拟机管理内存中最大的一块,唯一目的就是存放对象实例,存储对象的成员变量,
也是垃圾回收器主要管理的地方,故又称 GC 堆。
5、方法区:存储加载的类信息、常量区、静态变量、JIT(即时编译器)处理后的数据等,类的信息包含类的版
本、字段、方法、接口等信息。需要注意是常量池就在方法区中。方法区因为总是存放不会轻易改变的内容,
故又被称之为“永久代”
提一下这个 Native 方法,指得就是 Java 程序调用了非 Java 代码,算是一种引入其它语言程序的接口
6 、垃圾回收器分为串行回收器、并行回收器、并发回收器,串行垃圾回收器单线程,效率低,并行和并发回收器 为多线程,但是并发回收器会造成程序阻塞,所以使用并行回收器进行垃圾回收,过程中会产生垃圾回收碎片, 会自动转换为串行垃圾回收器,清理完碎片,自动转换为并行垃圾回收器,不会对程序造成影响。2堆和栈的区别
功能方面:堆是用来存放对象的,栈是用来执行程序的。
共享性:堆是线程共享的,栈是线程私有的。
空间大小:堆大小远远大于栈。
3JVM的垃圾回收机制
1.jvvm 的垃圾回收机制后很多方法和垃圾回收器,我只了解分代管理法和清除标记法。
2
更多推荐
JVM你了解吗?最全总结
发布评论