码迷,mamicode.com
首页 > 编程语言 > 详细

Java虚拟机之栈

时间:2019-11-28 23:21:56      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:虚拟机   回收   物理内存   管理   com   变量   垃圾回收   mamicode   局部变量   

一.程序计数器(寄存器):PCR

作用:记住下一条JVM指令的执行地址。

特点:①线程私有的 ②不会存在内存溢出

二.虚拟机栈

1.定义

虚拟机栈:线程运行所需要的内存空间。

栈帧:一个栈帧对应一个方法的调用。

每个线程只能有一个活动栈帧,对应着当前正在执行的哪个方法。

思考:

一、垃圾回收是否会涉及到栈内存?:不会,栈内存是一次次的方法调用产生的栈帧内存,一次方法调用后就会弹出栈,就会被自动的回收掉,所以根本不需要垃圾回收来管理栈内存,垃圾回收只是回收堆内存中的无用对象。

二、栈内存分配越大越好吗?:不是,物理内存一定,栈内存越大,线程数会减少,栈内存越大只是增加多次方法递归的调用,一般采用默认大小即可。

三、方法内的局部变量是否线程安全?:如方法内局部变量没有逃离方法的作用范围,它就是安全的,反之。

2.栈内存溢出

溢出情况:①栈帧过多②栈帧过大

3.线程运行诊断

技术图片

 

 三、本地方法栈

clone

Java虚拟机之栈

标签:虚拟机   回收   物理内存   管理   com   变量   垃圾回收   mamicode   局部变量   

原文地址:https://www.cnblogs.com/sadfoo/p/11954205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!