JiveJdon Community Forums
在线308人   首页   主题总表   培训咨询   精华   查搜   注册    登陆
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
1 2 3 Go 总共有 43 回复 / 3
 发表新帖子   回复该主题贴
chenfz

悄悄话
发表文章: 4
注册时间: 2003年11月06日 19:24
static能大量用么? 2003年11月06日 19:28 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 对象生命周期(51)      单例(24)     
今天碰到一个问题:static能大量用么?无论是修饰变量,还是修饰方法(method)。
在我看来,static不能用来大量修饰方法,因为我觉得static用多的话,占用内存多。但是有人有另外一个意见:static能提高速度,对内存无影响。
不知道大家如何看这个问题?
无道

悄悄话
发表文章: 34
注册时间: 2003年08月30日 23:01
Re: static能大量用么? 2003年11月06日 22:15 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
该用时才用,而不是为使用而用.
chenfz

悄悄话
发表文章: 4
注册时间: 2003年11月06日 19:24
Re: static能大量用么? 2003年11月07日 08:51 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
什么时候改用?
我碰到一个人的代码,他将类中大量的方法定义为static。我问他为什么,他说这样速度快,好。
我想知道大量用static,将来运行的时候是不是很耗内存。
java_lover

悄悄话
发表文章: 2
注册时间: 2003年11月05日 12:29
Re: static能大量用么? 2003年11月07日 12:35 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
会影响内存的。不要什么都用STATIC来定义
weihello

悄悄话
发表文章: 37
注册时间: 2003年10月02日 10:38
Re: static能大量用么? 2003年11月07日 15:39 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
确实是系统固有的行为和对象,用之。重要的是要考虑清楚,是否是固有的。

大部分时候,我们不用讨论static是否影响效率,而应该是这确实客观反映了系统的本来面貌否。
banq

悄悄话
发表文章: 9316
注册时间: 2002年08月03日 17:08
Re: static能大量用么? 2003年11月07日 17:36 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
static使用需要和多线程概念联系起来,过分使用Static会导致系统单线程运行,整个系统性能大幅度降低,使得你都无法定位性能问题。

我曾经碰到过一个游戏系统,由于大量使用static 和singleton,导致单线程,速度太慢了。注意:对于一些初学者,单线程开发是最方便的,这也是没有架构设计原因导致的,这样的项目必然失败。

Horser

悄悄话
发表文章: 31
注册时间: 2003年07月29日 19:53
Re: static能大量用么? 2003年11月07日 20:17 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
static的作用和上边几位说的有什么联系吗?大家还是好好看一看java语法吧,用错位置的话程序逻辑上都不会正常跑起来的!
robbin

悄悄话
发表文章: 590
注册时间: 2003年06月18日 09:32
Re: static能大量用么? 2003年11月07日 23:57 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
static方法的问题我前面有帖子详细讨论过,搜索一下。

static方法本身不会影响性能,笼统的来说,由于不需要new对象,也不需要隐式传递对象引用,因此内存消耗少,执行速度快。

但是由于static方法调用本身是不访问对象的,因此方法内部不能够使用非静态的属性,如果你不管三七二十一乱用static方法,必然会造成定义大量的静态属性,这样反而会造成内存消耗大,对象之间偶合性非常高的问题。

因此是否采用static方法不取决于内存消耗和执行效率,而是取决于你的业务逻辑。笼统的来说,如果对象是有状态的,那么需要new一个对象,方法不是静态的,如果对象是无状态的,那么使用静态方法,把类的静态方法当做函数调用来使用。

水雨澍

悄悄话
发表文章: 46
注册时间: 2003年10月07日 00:07
Re: static能大量用么? 2003年11月08日 00:56 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
如果你的项目用了大量的STATIC,那么你的设计思路一定有问题!
agilejava

悄悄话
发表文章: 61
注册时间: 2003年11月01日 09:33
Re: static能大量用么? 2003年11月08日 14:15 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
我看到ofbiz就使用了大量的static方法啊
missxkl

悄悄话
发表文章: 58
注册时间: 2003年07月21日 11:53
Re: static能大量用么? 2003年11月10日 09:14 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
banq能否解释一下为什么static方法用多了会产生单线程执行的问题?

如果不用static方法,频繁创建对象、频繁回收的成本如何计算?

我们的项目中现在就遇到了这样的一个问题。非同步的静态方法

也会导致单线程么?



sim114

悄悄话
发表文章: 19
注册时间: 2002年12月19日 11:48
Re: static能大量用么? 2003年11月10日 17:57 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
/*
static方法本身不会影响性能,笼统的来说,由于不需要new对象,也不需要隐式传递对象引用,因此内存消耗少,执行速度快。


如果你的项目用了大量的STATIC,那么你的设计思路一定有问题!
*/

一般来说是这样子的(除非你的设计差到不行)。从面向对象的观点说,根本就不应该有static method,他的存在就是为了快速函数调用

static 会导致单线程??,不是吧??

sim114

悄悄话
发表文章: 19
注册时间: 2002年12月19日 11:48
Re: static能大量用么? 2003年11月10日 18:02 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
singleton,导致单线程??
synchronized method??

singleton 主要是把业务逻辑分发出去,有点类似action,不应该造成单线程阿

zzeric

悄悄话
发表文章: 20
注册时间: 2002年10月03日 01:35
Re: static能大量用么? 2003年11月10日 20:12 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
在静态方法内部只要没有用到静态成员变量的话,就不会有多线程的问题,同理singleton也是如此,banq说的情况估计是设计失误。static方法一般用于设计一些通用的Helper类,以节约内存,提高速度,不适宜放在有业务意义的类里面,因为会让人觉得跟面向对象的原理有所违背,但如果为了方便不想用Helper类而直接写在业务类里也是无可厚非的。
raynix

悄悄话
发表文章: 170
注册时间: 2003年06月17日 11:34
Re: static能大量用么? 2003年11月11日 10:15 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题

> singleton
> 主要是把业务逻辑分发出去,有点类似action,不应该造成单
> 叱贪?>

分发业务逻辑???
请参考singleton的定义:


public class Sn {
private static Sn ourInstance;

public synchronized static Sn getInstance() {
if (ourInstance == null) {
ourInstance = new Sn();
}
return ourInstance;
}

private Sn() {
}
}
这个主题有 43 回复 / 3Go 1 2 3
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam