栈的相关面试题
举例栈溢出的情况?
- StackOverflowError
- 通过
-Xss
设置栈的大小 - 动态分配时超过内存大小会出现OOM
调整栈大小,就能保证不出现溢出吗?
- 不能
- 需要根据实际情景进行设置
分配的栈内存越大越好吗?
- 不是
- 短期内会有优点,但是会挤占其他的内存空间
- 只能延缓SOE的出现时间,但不能避免
垃圾回收是否会涉及到虚拟机栈?
- 不会
- GC只负责方法区和堆空间
- 线程私有的部分(本地方法栈,虚拟机栈,PC寄存器)不会被GC
方法中定义的局部变量是否线程安全?
- 如果只有一个线程才可以操作此数据,则必是线程安全的
- 如果有多个线程操作此数据,则此数据是共享数据。在不考虑同步机制的情况下,会存在线程安全问题。