java,静态变量和局部变量

来源:互联网 发布:淘宝818会有活动吗 编辑:程序博客网 时间:2024/06/02 02:57

j输出为啥一直是0 ?  在for循环里不是修改了吗?

请看代码

public class Main   implements Runnable {    static Main instance=new Main();    static int i=0;    static int j=0;    @Override    public void run() {        for(int j=0;j<5;j++){            System.out.println(j +"   wwwwww");            //this,当前实例对象锁            synchronized(this){                i++;                increase();//synchronized的可重入性            }        }    }    public synchronized void increase(){        System.out.println(j +"   aaaaaa");  //这里j输出为啥一直是0 ?    }    public static void main(String[] args) {        Thread t1=new Thread(instance);        t1.start();        try {            t1.join();        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println(i);    }}//0   wwwwww//0   aaaaaa//1   wwwwww//0   aaaaaa//2   wwwwww//0   aaaaaa//3   wwwwww//0   aaaaaa//4   wwwwww//0   aaaaaa//5
public class Main   implements Runnable {    static Main instance=new Main();    static int i=0;    static int j=3;//把j改成3    @Override    public void run() {        for(int j=0;j<5;j++){            System.out.println(j +"   wwwwww");            //this,当前实例对象锁            synchronized(this){                i++;                increase();//synchronized的可重入性            }        }    }    public synchronized void increase(){        System.out.println(j +"   aaaaaa");  //这里j输出为啥一直是0 ?    }    public static void main(String[] args) {        Thread t1=new Thread(instance);        t1.start();        try {            t1.join();        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println(i);    }}//0   wwwwww//3   aaaaaa//1   wwwwww//3   aaaaaa//2   wwwwww//3   aaaaaa//3   wwwwww//3   aaaaaa//4   wwwwww//3   aaaaaa//5
public class Main   implements Runnable {    static Main instance=new Main();    static int i=0;    static int j=3;//把j改成3    @Override    public void run() {        for(int j=0;j<10;j++){            System.out.println(j +"   wwwwww");            //this,当前实例对象锁            synchronized(this){                i++;                increase(j);//synchronized的可重入性            }        }    }    public synchronized void increase(int j){//这里传入j        System.out.println(j +"   aaaaaa");      }    public static void main(String[] args) {        Thread t1=new Thread(instance);        t1.start();        try {            t1.join();        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println(i);    }}
0   wwwwww0   aaaaaa1   wwwwww1   aaaaaa2   wwwwww2   aaaaaa3   wwwwww3   aaaaaa4   wwwwww4   aaaaaa5
静态变量j与局部变量j重名了




原创粉丝点击