是不是呢?

解决方案 »

  1.   

    为什么?static只会节省内存。
      

  2.   

    static不是一开始就初始化了?
    那样不是霸住内存了?
      

  3.   

    static 应该会更节约啊,因为一般变量会通过拷贝方式传值,而static应该是传引用吧。
    无论什么变量都要用内存啊,怎么说static是霸住呢,呵呵
      

  4.   

    static 类型的变量在内存中只有一个备份,
    而非static类型的却需要为没一个对象分配内存
    所以可以说static在一定程度上减少了内存的占用
      

  5.   

    static是放在栈中的,比方在对内存中效率是要高许多的,他又只产生一次,应该说他是即省时间又省空间。
      

  6.   

    static不要滥用,一般static对象是不容易被GC回收的,所有用多了之后,程序里面如果有要释放的对象被此static对象引用,那么此要释放的对象也将不得释放,导致内存泄漏-》
    这样内存就增加了:)
      

  7.   

    楼上说的static对象是不容易被GC回收这个说法不对,我做过验证来证明不是这样的。
      

  8.   

    我觉得看什么情况了。如果一个用的多的数据,就是好多地方都要用到,那么static应该是省内存的,但是要是只有很少几个地方用到的数据,那么定义成static就有点不划算了,它会一直占用内存空间。而且我觉得static用太多不是一个好的办法,static太多,而且不是fianl的话,代码很容易出现bug。
      

  9.   

    static是在类加载时就初始化了,所有static都是用引用,举一个例子,String a="a";String b="a";a==b是true,因为String类使用就是static,但是如果你new一个String就会是false
      

  10.   

    static不要乱用, 很多隐蔽的内存泄露就是这个原因, 而且在程序大的时候很难找到原因.
    所有被static引用的一条引用链都不会被垃圾回收.
      

  11.   

    static最好只用在工具类里面
    他会一直占着内存,不会释放的。
      

  12.   

    cocosunshine(我爱阳光),你说的这个知识点我看了好几本书都没讲到,能不能再详细的讲解一下原理。
      

  13.   

    static是在类加载时就初始化了,所有static都是用引用,举一个例子,String a="a";String b="a";a==b是true,因为String类使用就是static,但是如果你new一个String就会是false
    -------------------------
    扯吧, 我怎么从来都没听说是这个原因. 这个解释我感觉是完全不对.
      

  14.   

    用static确实会占住内存,所以尽量不要让static成员引用大对象。static一般是用来保存常量的,比方字符串或者数字,这样的话耗内存还是很小的。
      

  15.   

    static的生命周期应该是在被创建对象之前到整个程序结束后
    所以要看你的程序要什么个运用法子了