zoukankan      html  css  js  c++  java
  • 【基础知识】.Net基础加强06天

    一、 垃圾回收

    1. 垃圾回收的目的:提高内存的利用效率。

    2. 垃圾回收器: 只回收托管堆中的内存资源,不回收其他资源(数据库连接、文件句柄、网络端口等);

    3. 什么时候垃圾回收?

    a) 当对象没有任何变量指向的时候就可以被垃圾回收了。(可以被回收,但是不知道什么时候可以回收,回收是由系统决定的

    b) GC.Collect(); //手动调用垃圾回收(一般不需要手动调用垃圾回收,由系统自动调用)

    c) 不要手动调用,因为垃圾回收会调用一系列的算法,需要移动对象等等,这时为了达到目的,需要暂停应用程序的已处理,这时如果频繁的调用垃圾回收反而会影响性能。

    4. 垃圾回收器中的“代”的概念

    a) 垃圾回收中的代有三代:

    i. 回收的时候优先回收第0代,没有回收的移动到第一代,第一代和第二代要倒满的时候才能回收。

    b) 垃圾回收采用代的概念,避免了每次垃圾回收都遍历所有的对象,减少了垃圾回收的时间。

    第0代的回收频率高,第1代次之,第2代再次之。

    效果:越老的对象活的越长。

    5. 除了内存资源之外的其他资源。

    a) 使用Dispose();释放除内存之外的方法。

    b) ~Class1(){}//析构函数(c++中的名称)在C#中叫Finalize()函数(终结函数)

    与类名相同

    在当前对象被垃圾回收之前会调用Finalize()函数,释放其他资源。

    6. 弱引用:WeakReference,对于创建比较耗时的对象可以使用若引用

    什么时候使用弱引用:一般用在创建比较耗时的对象。

    二、 集合类

    1. ArrayList(非泛型) –> List<T>(泛型)

    Hashtable(非泛型)--->Dictionary<K,V>(泛型)

    2. 数据的特点:类型统一、长度固定

    3. 集合的常用操作:添加、遍历、移除

    4. ArrayList集合:

    a) ArrayList   arr = new ArrayLlist();

    Arr.Count//实际的个数(属性)

    Arr.Capacity;容量。集合的容量是递增翻倍,初始容量是4(属性)

    Arr.TrimToSize();//将总容量“收缩”为实际容量

    5. Hashtable键值对集合,类似于字典,

    键的地址是算出来的,所以高性能。

    • Hashtable 键值对的集合,类似于字典,Hashtable在查找元素的时候,速度很快。

    • Add(object key,object value);

    • hash[“key”]

    • hash[“key”]=“修改”;

    • .ContainsKey(“key”);

    • Remove(“key”);

    • 遍历:

    • hash.Keys

    • hash.Values/DictionaryEntry

    • 键值对集合中的“键”,绝对不能重复。

    三、 泛型集合(在.Net2.0之后出现的)

    1. 通过泛型可以限定集合中存储的类型

    2. List<int> list = new List();

    a) 由于增加的时候都是int 类型,所以取值的时候获取的值直接就是int 类型,无需类型转换。

    b) 微软推荐使用List<T>泛型集合,他是ArrayList的升级版

    3. Dictionary<string,string> dict = new Dictionary<string,string>();

    a) 用这个来替换Hashtable

    b) 遍历:foreach(KeyValuePair<T,T> kv in dict)//可以将key和value一起遍历出来

    四、 Var关键字简述(是一个强类型,在程序编译的时候就已经替换成相应的数据类型)

    类型推断

    注:在JavaScript中的var是一个弱类型

  • 相关阅读:
    dock 安装部署和初级管理命令
    3 gogs+jenkins 触发远程构建及tomcat管理war包替换
    2 gitlab+jenkins maven自动打包更新
    1 gitlab+jenkins 自动化部署 持续集成
    Day7 面向对象进阶
    Day 6 面向对象初级
    day4 迭代器&生成器&递归&json&正则
    day5 常用模块
    day3 函数
    day2 数据及文件操作
  • 原文地址:https://www.cnblogs.com/haoxilu/p/3570756.html
Copyright © 2011-2022 走看看