What if assign static variable to local variable?

CoD*_*oDe 0 java static-members

What happened in this case,

static Object MAX = 5;
    public Object tmp = 0;

    public void process() {
        tmp = MAX;
    }
Run Code Online (Sandbox Code Playgroud)

will tmp also behave like class variable?

Rob*_*bAu 6

引用是相同的,所以只要你不改变tmp,它就会指向的值MAX.如果MAX获取新值(不更改引用)tmp将指向相同的值.

但是,如果tmp没有实例,则无法访问.

当您分配5MAX对象时,您最终会得到一个Integer.这是Java的自动装箱功能.Integer没有办法改变它的价值; 因此,MAX如果您想要更改它,则必须重新分配给新对象.然后tmp将不再指向相同的值,除非您process()再次打电话.