黑马程序员技术交流社区
标题:
静态变量不用final修饰是否是个不安全的举动
[打印本页]
作者:
焚雨成灰
时间:
2014-4-10 18:41
标题:
静态变量不用final修饰是否是个不安全的举动
本帖最后由 焚雨成灰 于 2014-4-11 14:28 编辑
当设计一个类的时候,为了提供共享数据,将该数据声明为静态是否合适?
比如卖票程序中,几个线程共享票的数量,将票的数量声明为static是否合适,我怎么总感觉不安全呢?
作者:
yanzhendong
时间:
2014-4-10 19:35
既然是变量,肯定不能用final来修饰了,否则就不能改变它的值,一般用final修饰的都是常量或参数
作者:
yanzhendong
时间:
2014-4-10 19:40
一般线程间同步数据都要用到同步函数以保证操作的原子性,不建议直接操作共享变量,
作者:
fufeng
时间:
2014-4-10 19:47
将static 修饰的变量弄成私有的,即 private static 变量名,只使本类内部方法调用,这样应该会安全些
作者:
jingdou56
时间:
2014-4-10 21:58
一般情况下如果某个变量的值是不变的才用 final来修饰,
而静态修饰的变量不一定是不变的,
比如买票这个程序,票的数量是 会改变的,
如果被final修饰,票的数量就不能改变!
需不需要被final修饰,要依情况而定,感觉和安全关系不大!
作者:
syusikoku
时间:
2014-4-10 22:01
使用静态声明就说明这个变量可以被类名调用了,如果不使用静态声明。这个变量只能被实例调用。
作者:
杨殿生
时间:
2014-4-10 22:18
不需要使用static修饰因为他的生存周期太长,卖票中可以采用单例设计模式,安全的问题可以使用同步锁
作者:
山治0712
时间:
2014-4-10 23:02
共享的话就应该不是对象所特有的,应该为静态
作者:
leon_hm
时间:
2014-4-10 23:07
1.final修饰的变量是不能修改的
2.几个线程共享应该考虑对修改变量值代码加锁,保证线程安全
作者:
zhangbingyuan
时间:
2014-4-11 11:42
这个有些地方讲得很好可以看一下 http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2