静态成员变量在一个主线程中改变之后,并不影响另一个主线程中的值!
首先定义一个Hero类:
package myJDBC;
public class Hero {
public String name;
public Hero(String name) {
this.name=name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return name;
}
}
创建一个主线程:
public class Testjdbca {
public static Hero hero=new Hero("teemo");
public Testjdbca(Hero h) {
}
public Testjdbca() {
}
public static void main(String[] args) {
System.out.println(Testjdbca.hero);
YThread yh=new YThread(Testjdbca.hero);
yh.start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Testjdbca.hero);
}
}
class YThread extends Thread {
Testjdbca f=new Testjdbca();
Hero hero;
public YThread(Hero h) {
this.hero=h;
}
@Override
public void run() {
System.out.println(hero);
hero.name="heroa";
System.out.println(hero);
}
}
执行结果:
teemo
teemo
heroa
heroa
同时另一个主线程:
public static void main(String[] args) {
TaskA task=new TaskA();//初始化驱动
System.out.println(Testjdbca.hero);
}
执行结果:
teemo
结果并未收到影响!