zoukankan      html  css  js  c++  java
  • (c#疑问)static的优点是什么?为什么要使用static 变量或函数??

    转载:http://www.cnblogs.com/whzhouqun/p/4669837.html

    有一些频繁使用的东西,如果你每次使用都重新new一下,那么这个开销可能会很高,如果使用static,一直放在内存中,那么想用就直接用,而不需要重新new一块空间初始化数据。那么static就是为了实现一个系统的缓存作用的,其生命周期直到应用程序退出结束。

    静态成员包括静态字段和静态属性,静态成员和类相关联,不依赖于对象而存在,只能由类访问,而不能由对象访问; 静态成员属于类所有,无认创建多少实例对象,静态成员在内存中只有一份;实例成员属于类的实例所有,每创建一个实例对象,实例成员都会在内存中分配一块内存区域。 所以静态成员一般用于存放共享的数据段,如数据库连接字符串等。
    一个类如果只包含静态成员和静态方法,则该类可以定义为静态类,给类加上static修饰符; 静态方法和非静态方法: 一、性能上:静态方法和实例方法差别不大。所有方法,不管是静态方法还是实例方法,都是在JIT加载类时分配内存,不同的是静态方法以类名引用,而实例方法对对象实例引用。创建实例时,不会再为类的方法分配内存,所有的实例对象共用一个类的方法代码。因此静态方法和实例方法的调用,在性能上的差别微乎其微。 二、静态方法只能由类访问;实例方法只能由对象访问。

    优点: 1,静态变量在类载入时,就装入内存 2,使用时不用 New 就意味的不必 创建类中 所有对象,就可以调用 某个方法 缺点: 1,垃圾回收机制 不能 回收 静态变量,静态类变量 会常驻内存

  • 相关阅读:
    26 转义符 re模块 方法 random模块 collection模块的Counter方法
    25 正则表达式
    24 from 模块 import 名字
    24 from 模块 import 名字
    24 from 模块 import 名字
    23 析构方法 items系列 hash方法 eq方法
    21 isinstance issubclass 反射 _str_ _new_ _len_ _call_
    20 属性, 类方法, 静态方法. python2与python3的区别.
    python(1)
    python之字符串格式化
  • 原文地址:https://www.cnblogs.com/wangbaohui/p/6555177.html
Copyright © 2011-2022 走看看