青岛的网站建设公司,江门网站建设推广策划,企业管理培训课程ppt,个人的小说网站如何做jvm划分5个区域#xff1a;
java虚拟机栈、本地方法栈、堆、程序计数器、方法区。 各个区各自的作用#xff1a;
1.本地方法栈#xff1a;用于管理本地方法的调用#xff0c;里面并没有我们写的代码逻辑#xff0c;其由native修饰#xff0c;由 C 语言实现。 2.程序计数…jvm划分5个区域
java虚拟机栈、本地方法栈、堆、程序计数器、方法区。 各个区各自的作用
1.本地方法栈用于管理本地方法的调用里面并没有我们写的代码逻辑其由native修饰由 C 语言实现。 2.程序计数器它是一块很小的内存空间主要用来记录各个线程执行的字节码的地址例如分支、循环、线程恢复等都依赖于计数器。 3.方法区Java8叫元空间用于存放已被虚拟机加载的类信息常量静态变量等数据。 4.Java 虚拟机栈用于存储局部变量表、操作数栈、动态链接、方法出口等信息。栈里面存的是地址实际指向的是堆里面的对象 5.堆Java 虚拟机中内存最大的一块是被所有线程共享的几乎所有的对象实例都在这里分配内存
哪些是线程私有、公有的
a.线程私有每个线程在开辟、运行的过程中会单独创建这样的一份内存有多少个线程可能有多少个内存Java虚拟机栈、本地方法栈、程序计数器是线程私有的 b.线程全局共享的堆和方法区
GC调用时机
栈虽然方法运行完毕了之后被清空了但是堆上面的还没有被清空所以引出了GC垃圾回收不能立马删除因为不知道是否还有其它的也是引用了当前的地址来访问的