循环第二次的时候,就有一个重名的my了呀?为什么还是能正常运行,不报错?
直接上代码:
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
Thread thread = new Thread();
thread.start();
System.out.println(thread.getName());
}
}
}
// 运行结果:
// Thread-0
// Thread-1
// Thread-2
如果你要指定名字,你应该这样来做:
public class Test {
public static void main(String[] args) {
Thread thread = new Thread("我的线程");
thread.start();
System.out.println(thread.getName());
}
}
//运行结果:
//我的线程
3 回答2.7k 阅读✓ 已解决
3 回答4.2k 阅读✓ 已解决
8 回答3.8k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
4 回答1.9k 阅读
java 是块作用域
一个
{}
就是一个独立的作用域空间每次循环的时候,都会有一个新的作用域空间
你在
for
循环体外是看不到my
的,也是因为超出了作用域空间