记录的是尚硅谷JVM视频中介绍的面试题
1、举例栈溢出的情况?
StackOverflowError,可以通过-Xss设置栈的大小;
2、调整栈大小,就能保证不出现溢出吗?
不能。可能会不溢出;但是如果程序陷入死循环,增大栈的大小,只能使得栈溢出出现时间延后,但是依旧会出现栈溢出。
3、分配的栈内存越大越好吗?
不是。会挤占其他结构的空间。
4、垃圾回收是否会涉及到虚拟机栈吗?
不会。垃圾回收出现在方法区和堆空间。
出现error | 出现垃圾回收 | |
程序计数器 | 不会 | 不会 |
本地方法栈 | 会 | 不会 |
虚拟机栈 | 会 | 不会 |
方法区 | 会 | 会 |
堆 | 会 | 会 |
5、方法中定义的局部变量是否线程安全?
不一定。当只有一个线程时,是线程安全;如果有多个线程操作共享数据且不考虑同步机制,会存在线程安全问题。