static变量、static方法之间的异同

 
 

    private SchemeBean getEmptyScheme() {
        SchemeBean scheme = new SchemeBean();
        scheme.setCost("");
        scheme.setDuration("");
        scheme.setNightflag("");
        scheme.setWalkingDistance("");
        return scheme;
    }

 

一个简单的这样的方法,完全可以写成static类型。线程也安全,那static方法,到底会不会有性能提升?是不是static方法,在class实例化的时候,就不用跟static类变量似的,不用每次都加载了?

以下是我自己思考的结果,不一定对:

static变量,肯定是在perm存一份。没线程安全问题的情况下,用static肯定会比不用好。

static方法,肯定也是在perm中存一份。不是每次类实例化的时候加载方法,方法不跟变量一样,方法只会存一份在perm,实例化的时候,非static变量会在线程栈中存一份。但是方法不一样,非static和static都是一样执行,从perm中copy出来到线程栈,然后运行。

 

所以在存储和效率上,static方法和非static,一点不同都没有。只是static方法可以不用实例化调用而已。

 
posted @ 2014-05-14 18:19  tmpt  阅读(315)  评论(0编辑  收藏  举报