黑马程序员技术交流社区
标题:
变量名会重复吗?
[打印本页]
作者:
艺多不压身丶
时间:
2015-2-16 23:03
标题:
变量名会重复吗?
本帖最后由 艺多不压身丶 于 2015-2-16 23:05 编辑
package pack;
class ThreadTest3{
public static void main(String[] args){
new Thread(){
public void run(){
for(int x=0; x<50; x++)
System.out.println(Thread.currentThread().getName()+"Thread :"+x);
}
}.start();
new Object(){
public void run(){
for(int x=0; x<50; x++)
System.out.println(Thread.currentThread().getName()+"Object :"+x);
}
}.run();
Runnable r=new Runnable(){
public void run(){
for(int x=0; x<50; x++)
System.out.println(Thread.currentThread().getName()+"Runnable :"+x);
}
};r.run();
for(int x=0; x<50; x++)
System.out.println(Thread.currentThread().getName()+x);
}
}
复制代码
以上代码体现,请问程序结果。变量X会出现重名错误吗?
作者:
Gonnaloveu
时间:
2015-2-16 23:16
不会啊,x作用域在它所在的for循环之内,for循环结束后x就不存在了
作者:
huangchunwei
时间:
2015-2-16 23:34
不会,x变量的作用域只在for循环内有效。循环结束。x变量就消失了。
作者:
枪杆不如笔杆
时间:
2015-2-16 23:34
楼上正解
作者:
Ansel
时间:
2015-2-17 00:31
布吉岛啊
作者:
mengxiang1993
时间:
2015-2-17 08:17
不会,变量的作用域内不要重名即可,出来作用域,局部变量会在栈空间删除。
作者:
rehan
时间:
2015-2-17 09:12
应该会的。。。。。。。。。。。
作者:
ZZGFF
时间:
2015-2-17 10:06
x在for语句里面,当执行完for语句的时候,x已经不存在内存中了,也就是说,for语句执行完之后,就没x什么事了,不会显示重名。
作者:
coolmiao13
时间:
2015-2-17 10:20
楼主,把那个局部变量跟全局变量搞清楚就好了,
理论上变量名是不能重复的,
但是不同引用可以使用一个变量名,因为存储在不同位置。
作者:
苏安东
时间:
2015-2-17 16:32
就解释呀
作者:
H马凯
时间:
2015-2-17 17:33
不会啊
作者:
万合天宜
时间:
2015-2-17 17:36
必须不会啊,x都是作用在{}之内的,{}里的代码执行完x就成垃圾了。
作者:
赵耿
时间:
2015-2-17 20:02
这是个有问题的三线程吧?还用了匿名内部类,运行时是会出现问题的,其中也有可能出现你的x重定义错误!
作者:
aawenwei
时间:
2015-2-17 21:08
不会,作用域里不重复就好
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2