A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 焚雨成灰 于 2014-4-11 14:28 编辑

当设计一个类的时候,为了提供共享数据,将该数据声明为静态是否合适?
比如卖票程序中,几个线程共享票的数量,将票的数量声明为static是否合适,我怎么总感觉不安全呢?

9 个回复

正序浏览
这个有些地方讲得很好可以看一下 http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html
回复 使用道具 举报
1.final修饰的变量是不能修改的
2.几个线程共享应该考虑对修改变量值代码加锁,保证线程安全
回复 使用道具 举报
共享的话就应该不是对象所特有的,应该为静态
回复 使用道具 举报
不需要使用static修饰因为他的生存周期太长,卖票中可以采用单例设计模式,安全的问题可以使用同步锁
回复 使用道具 举报
使用静态声明就说明这个变量可以被类名调用了,如果不使用静态声明。这个变量只能被实例调用。
回复 使用道具 举报
一般情况下如果某个变量的值是不变的才用 final来修饰,

而静态修饰的变量不一定是不变的,

比如买票这个程序,票的数量是 会改变的,

如果被final修饰,票的数量就不能改变!

需不需要被final修饰,要依情况而定,感觉和安全关系不大!

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
将static 修饰的变量弄成私有的,即 private static  变量名,只使本类内部方法调用,这样应该会安全些
回复 使用道具 举报
一般线程间同步数据都要用到同步函数以保证操作的原子性,不建议直接操作共享变量,
回复 使用道具 举报
既然是变量,肯定不能用final来修饰了,否则就不能改变它的值,一般用final修饰的都是常量或参数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马