9.jvm内存结构部分——栈的问题解析1

2.1定义
Java Virtual Machine Stacks (Java 虚拟机栈)
1.每个线程运行时所需要的内存,称为虚拟机栈
2.每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存
3.每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法(栈顶部的那个方法)

问题辨析
1.垃圾回收是否涉及栈内存?
    不需要,栈内存只是一次次的方法调用,在调用结束后都会被弹出栈。会自动的回收掉,故而不需要垃圾回收管理我们的栈内存。(垃圾回收只会回收我们堆内存的无效对象,我们栈内存是不需要垃圾回收的)
2.栈内存分配越大越好吗?
    -Xss Size   #设置栈内存大小
    -Xss 1m
    -Xss 1024k
    -Xss 1048576
    不指定大小的话,每个栈都是1m的大小(除windows外,windows系统默认配置看虚拟内存,其他操作系统都是1m)。

    2.1.栈内存划的越大,会让线程数变得越小。
        因为我们的物理内存的大小是一定的,比如一个线程用了1M内存,假设物理内存有500M,我可以有500个线程同时运行。假如我们设置栈帧大小为2M内存,这个机器就最多同时能跑250个线程。(栈大的好处,仅仅是为了更多次方法的递归调用。但并不会增快我们的运行效率,反而会让线程数目变少,不建议设置过大的栈内存,一般默认就可以了)

3.方法内的局部变量是否线程安全?
    是线程安全的。             #下篇分解

 

上一篇:8.jvm内存结构部分——栈的演示_tgbyhn31的博客-CSDN博客

下一篇:10.jvm内存结构部分——栈的问题解析2___线程安全_tgbyhn31的博客-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值