问题描述
“JAVA中不应该有所谓全局变量的概念,全局变量严重影响了封装和模块化,所以如果你的程序中需要所谓的全局变量,那一定是你对程序的设计出了问题。”很多地方看到上面的话,我也始终认为上面的话是正确的。但是实际项目中有时候会觉得增加一个全局变量会很有用,例如增加一个SessionManager类,使用全局变量SessionMap管理多个用户的session。本帖想仅就技术层面如何实现全局变量,使用static关键字或使用单例模式,每种实现是否会有线程安全问题。servletContext实现原理是什么,是否线程安全。网上查了好久,内容都很相似,看完之后还是有疑惑,第一次发帖,请大神指教
解决方案
解决方案二:
全局变量肯定还是有用的,虽然说占内存啊,影响性能什么的,但是有时候还非他不可全局变量的实现的话,常用的都是publicstaticfinal,这样当做常量来用,多方面实现
解决方案三:
引用1楼shijing266的回复:
全局变量肯定还是有用的,虽然说占内存啊,影响性能什么的,但是有时候还非他不可全局变量的实现的话,常用的都是publicstaticfinal,这样当做常量来用,多方面实现
我也觉得publicstaticfinalCollention是比较方便的实现,但是这样会有线程安全问题吧,所以我想的是改为private的,然后使用synchronizedgetValue/setValue方法读写数据,不考虑性能的情况下这样是否可行
解决方案四:
可不可行试试就知
解决方案五:
首先,你得达到你的目的,在考虑性能
解决方案六:
全局变量?你要是不想用publicstaticfinal、还不如放到session中那、哪都能取得到、也不烧性能、就是有点不安全
解决方案七:
现在得代码第一、安全性;第二、实现需求;第三、可扩展性;第四、性能,因为现在企业级用户对于服务器得投资越来越不在乎,一个大型项目应用服务器都要4-8台,通信服务器2台,数据库服务器4台,矩阵若干,一个项目坐下来几百万得硬件。性能方面只要不是太离谱没关系得。中国特色
解决方案八:
“JAVA中不应该有所谓全局变量的概念,全局变量严重影响了封装和模块化,所以如果你的程序中需要所谓的全局变量,那一定是你对程序的设计出了问题。”————————————————————————————————以前信过这种观点,现在不信了:)太武断。这是把java往死里整啊。。。
解决方案九:
引用6楼ooppookid的回复:
现在得代码第一、安全性;第二、实现需求;第三、可扩展性;第四、性能,因为现在企业级用户对于服务器得投资越来越不在乎,一个大型项目应用服务器都要4-8台,通信服务器2台,数据库服务器4台,矩阵若干,一个项目坐下来几百万得硬件。性能方面只要不是太离谱没关系得。中国特色
这倒是也算不上什么中国特色。原因说透了很简单:服务器比人便宜。是高薪养一个资深技术人员还是砸设备是个很容易判断的问题。从程序员的角度看,资本家的阴险企图就是把开发这个活儿从“智力密集型”转变成“体力密集型”。顺便吐槽下Spring+struct+hibernate,这就是个成功忽悠案例~~~~
解决方案十:
引用8楼deltatang的回复:
Quote: 引用6楼ooppookid的回复:
现在得代码第一、安全性;第二、实现需求;第三、可扩展性;第四、性能,因为现在企业级用户对于服务器得投资越来越不在乎,一个大型项目应用服务器都要4-8台,通信服务器2台,数据库服务器4台,矩阵若干,一个项目坐下来几百万得硬件。性能方面只要不是太离谱没关系得。中国特色这倒是也算不上什么中国特色。原因说透了很简单:服务器比人便宜。是高薪养一个资深技术人员还是砸设备是个很容易判断的问题。从程序员的角度看,资本家的阴险企图就是把开发这个活儿从“智力密集型”转变成“体力密集型”。顺便吐槽下Spring+struct+hibernate,这就是个成功忽悠案例~~~~
为什么这么说呢,SSM相对SSH有什么特别明显的优点么
解决方案十一:
引用9楼dksy891028的回复:
Quote: 引用8楼deltatang的回复:
Quote: 引用6楼ooppookid的回复:
现在得代码第一、安全性;第二、实现需求;第三、可扩展性;第四、性能,因为现在企业级用户对于服务器得投资越来越不在乎,一个大型项目应用服务器都要4-8台,通信服务器2台,数据库服务器4台,矩阵若干,一个项目坐下来几百万得硬件。性能方面只要不是太离谱没关系得。中国特色这倒是也算不上什么中国特色。原因说透了很简单:服务器比人便宜。是高薪养一个资深技术人员还是砸设备是个很容易判断的问题。从程序员的角度看,资本家的阴险企图就是把开发这个活儿从“智力密集型”转变成“体力密集型”。顺便吐槽下Spring+struct+hibernate,这就是个成功忽悠案例~~~~
为什么这么说呢,SSM相对SSH有什么特别明显的优点么
ssm是啥。。。。好吧,我查了一下,才晓得m指的是mybatis。。。我也没说ssm比ssh好啊。。。这么说吧,所有的这个shm之类的组合并将之市场化的努力就跟微软的xxstudio产品,期望用鼠标拖拉几个图标就搞定编程这个事情是一样的:)降低培训成本和劳动力的成本
解决方案十二:
静态关键字static,在类加载的时候就被执行了,一般这个是常量,增加读取速度,你说的全局变量,这个很有必要,一般全局变量,都会使用单例模式,整个过程中只会存在一个实例,这个你可以看看工厂模式,也是这么来的