2 qq 23473123 qq_23473123 于 2017.01.06 10:13 提问

静态变量有什么作用,是不是存在于静态方法才有意义。
private static Set<String> neededPropertyNameSet = new HashSet<String>();
static {
    // 对参数进行预处理
    neededPropertyNameSet.add("orgid");
    neededPropertyNameSet.add("includeflag");
    }
    看到别人写的代码,弄了个静态变量,只是在本类的方法里面用了,我觉得没必要,直接用私有变量就可以了,还浪费内存,就想到静态变量的作用,感觉静态变量是静态方法附属的。求解!!!

4个回答

sycdzdd
sycdzdd   2017.01.06 10:26
已采纳

静态变量对于同一个运行时环境(也就是同一个类加载体系加载到的class)来说是全局的,由此实例出来的所有对象访问的是同一份数据,
static块在类加载的时候会进行初始化,只初始化一次,我觉得他应该是想在加载类的时候就做map的初始化动作,而不是在实例化对象时
重复去对参数进行预处理

qq_23473123
qq_23473123 懂了,谢谢你的回答,讲真你怎么知道是给map用的?
11 个月之前 回复
ai977313677
ai977313677   2017.01.06 10:15

这不是静态变量,这是静态块,静态块一般用来初始化类的属性,在类被载入时执行,且只执行一次。

qq_23473123
qq_23473123 那直接用私有变量有啥区别吗,不是一样可以被类方法使用??
11 个月之前 回复
bigname22
bigname22   2017.01.06 10:19

举个例:在类中定义一个静态成员变量,那么这个静态就与这个类中的对象无关,无论new出多少个对象都是共享这一个静态变量。而与类有关。
java编程思想中好像大致这样说过:static一定程度上与面对对象思想相违背。希望对你有帮助

qq_23473123
qq_23473123 谢谢
11 个月之前 回复
shihengzhen101
shihengzhen101   Rxr 2017.01.06 10:19

静态变量可以看成是类的所有对象所共有的

qq_23473123
qq_23473123 谢谢
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!