关于java static使用的问题

fightingman 发布于 2016/09/30 11:55
阅读 378
收藏 0
今天看到有人说,大系统一般是不用static的,所有我就查阅了一下资料,看到有人说static对象是不容易被GC回收的,而且还容易导致内存泄漏,另外也看到说static占用的内存比较小,而且是在栈中,速度比较快。有没有大神解惑一下哦。谢谢
加载中
0
若水191
若水191
看你怎么用了,一个值不会变的变量,为什么不用static,内存泄漏也不会是static引起的,我用static时候就是不想让虚拟机回收,也不能回收,
fightingman
fightingman
那如果是方法的话,就是经常调用的方法可以加static?
0
iBoxDB
iBoxDB
最完美的系统是全部方法与变量都是static, 中间一次new操作都没有, 这样的系统运行100年也不会死机。
fightingman
fightingman
谢谢指导
0
高山流水情
高山流水情

静态常量、静态成员变量、静态方法、静态代码块等等,在普通的业务开发中不常用,但在系统的基础模块、开发框架中很常见、很实用。

fightingman
fightingman
受教了
0
螃蟹大叔
螃蟹大叔
分布式系统你还担心那点内存,static占用的内存是不能被回收,但是现在的系统都是分布式系统了,一个系统部署到多台物理机或虚拟机上,所以static占用的内存根本不会有多少,像有些spring项目,初始化一大堆单例实例在内存当中,也没什么,更何况static占用的那点内存了,一个项目最多加起来占用的也不过几M吧了,几M都算多的了吧
fightingman
fightingman
我也是这么想的
0
一只小桃子
一只小桃子

不是有个啥框架大量采用static吗?   static和是否分配在栈上没有关系。static对象是不容易被GC回收的,因为和类有关,类不卸载,没办法回收。

static占用的内存比较小?何来这一说? 说静态内部类能少一个引用,确实少一点内存。

返回顶部
顶部