什么是虚拟机栈
什么是虚拟机栈
- 每个线程运行时所需要的内存,称为虚拟机栈,先进后出,每个线程有一个虚拟机栈,所以虚拟机栈是线程安全的
- 每个栈由多个栈帧(frame)组成,对应着每次方法调用时所占用的内存
- 每个线程只能有一个活动栈帧,对应的就是当前栈里的正在执行的方法
垃圾回收是否涉及到栈内存:
垃圾回收主要指的是堆内存,当栈帧弹栈后,内存就会自动释放
栈内存分配的越大越好吗
未必,默认的栈内存通常为1024k
栈帧过大会导致线程数变少,例如,机器总内存为512m,目前能活动的线程数则为512个,如果把栈内存改为2048k,那么能活动的栈帧就会减半
- 栈内存划分越大反而会使你的线程数越少,因为物理内存的大小是一定的,每个线程的栈内存多,会使得线程数目变少,不建议过大