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());
}
}
//运行结果:
//我的线程
java 是块作用域
一个
{}就是一个独立的作用域空间每次循环的时候,都会有一个新的作用域空间
你在
for循环体外是看不到my的,也是因为超出了作用域空间你的my定义的是局部变量,每执行一次for循环都重新定义了变量。
即使你把变量放在循环外面定义,java中不会报错,只是变量存的地址会覆盖掉之前的变量。
直接上代码:
如果你要指定名字,你应该这样来做:
简单来说:对象有作用域
类似的问题:https://segmentfault.com/q/1010000004638990
my指向不同的MyThread实例对象罢了my ⇢ new MyThread() //老的
↘ new Mythread() //新的