static变量与实例变量 java

来源:互联网 发布:高拱 知乎 编辑:程序博客网 时间:2024/06/05 07:34

类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;

int snum = 0;@Overridepublic void run() {snum = num;System.out.println("Thread "+ num +" is running..." + " snum: " + snum);}
static int snum = 0;@Overridepublic void run() {try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}snum = num;System.out.println("Thread "+ num +" is running..." + " snum: " + snum);}


Thread 0 is running... snum: 0Thread 1 is running... snum: 1Thread 2 is running... snum: 2Thread 3 is running... snum: 3Thread 6 is running... snum: 6Thread 7 is running... snum: 7Thread 9 is running... snum: 9Thread 4 is running... snum: 4Thread 8 is running... snum: 8Thread 5 is running... snum: 5

Thread 7 is running... snum: 0Thread 0 is running... snum: 0Thread 8 is running... snum: 0Thread 4 is running... snum: 4Thread 3 is running... snum: 3Thread 1 is running... snum: 1Thread 6 is running... snum: 2Thread 2 is running... snum: 2Thread 5 is running... snum: 5Thread 9 is running... snum: 9