垃圾回收与静态成员

1、栈空间的变量一旦声明,出作用域的时候就会被回收
2堆里空间的对象,没有任何变量指向这个对象的时候就会被回收,这个对象被标记为“垃圾对象”等待回收GC(垃圾回收器——CLR)
3、GC是只回收堆空间,检查定时回收(频率由CLR决定)检查堆空间中有标记为“垃圾对象”的空间就回收
4、GC.Collect();//叫垃圾回收器回来回收垃圾(必须等GC处理完目前的任务,才来处理该任务)

析构函数

1、波浪号+类的名字(没有参数 没有访问修饰符 没有返回值)
2、析构函数在对象被回收的时候被回收,被GC回收的时候,析构函数被GC自动调用,程序员不能调用
3、析构函数一般用于处理善后工作
4、析构函数不能被继承或重载

 

静态成员
只能通过 类名.静态成员来访问

实例成员
类的成员没有被static修饰的成员

实例成员 有多少个对象就有多少份 每个对象独有1份


1、静态成员只存在一份,静态成员加载时机:类加载的时候(第一次访问),这个类中所有静态成员就会被加载在静态存储区


2、静态成员一旦创建,直到程序退出才会被回收成员(注意如果是引用类型,如static student myst=new student(),myst=null这时候,在静态存储区里面村的时一个地址(myst),这个地址指向在堆里面创建的student对象,当myst=null的时候,在静态存储区里面的变量会一直存在,但是在堆里面的student对象因为没有变量指向它,所以会被回收)
3、在静态方法中不能访问非静态成员 在静态方法中只能访问静态成员
4、当静态方法存在的时候 实例成员不一定存在,所以不能直接访问
5、可以在实例方法中直接访问静态成员
6、可以在静态方法中创建对象来调用实例成员
7、经常用到的功能或者属性 定义为静态成员 提高效率 工具类

8、静态构造函数在这个类的成员 第一次被访问的时候

9、静态构造函数只被访问一次

10、静态构造函数先执行
11、静态构造函数不能有参数,由系统自动调用,不能有修饰符
12、静态成员不能在静态方法里面创建
13、Main函数不一定在Program里面,但是Main必须是唯一的,所以Main定义为静态

14、静态类中只能有之态成员
15、当这个类中成员需要共享,那可以定义为静态类

posted on 2012-12-08 23:02  陈谨  阅读(642)  评论(0编辑  收藏  举报