一、名词解释
栈:线程运行时需要的内存空间
栈帧:每个方法运行时需要的内存
一个栈里可以同时存在多个栈帧,通过方法调用
每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法
二、思考?
-
垃圾回收是否涉及栈内存?
答:垃圾回收不涉及栈内存,当栈内栈帧结束后 栈就为空了。
2.栈内存越大越好吗?
答:不是,因为一个线程就会有一个栈空间,如果把栈内存加大,则线程数量就会减少,电脑同时处理任务的能力就会下降
3.方法的局部变量是否是线程安全?
答: -
如果方法内局部变量没有脱离方法作用范围(没有和外界联系),则线程是安全的
-
如果线程的局部变量作为了方法的形参的接收者,那么就不是安全的
-
如果方法的局部变量没有作为方法形参接收者,但是却将结果返回,也是不安全的。