关于Java语言for循环内外变量定义的问题

今天看书时,看到一个代码,一个在循环外面没有用的变量,后即有了我的问题,在后面:

我的问题:

变量循环内定义,例如:
while(true){
String splitStr = null;
}
这“些”个splitStr是放在栈里的,但是他们的名字一样,那他们是同一个作用域吗,如果是,那它们是怎么区分?ID?当然这个好像没有意义,那我还有个问题,它们在出了循环是没有用的,GC是什么时候清理他们的呢?

这个网站是我发现的一个问题,有些类似。觉得比较好。

http://www.iteye.com/problems/74037

原文地址:https://www.cnblogs.com/blogonfly/p/3965462.html