.NET Framework基础知识(一)(转载)

1、.NET Framework是支持生成和运行下一代应用程序和XML Web Services的内部Windows组件。
2、.NET Framework具有两个主要组件:公共语言运行库和.NET Framework类库。
3、使用基于公共语言运行库的语言编译器开发的代码称为托管代码,托管代码的优点:
   跨语言集成、跨语言异处理、增强的安全性、版本控制、部署支持、简化的组件交互模式、调试和分析服务
4、.NET Framework的垃圾回收器管理应用程序的内存分配和释放:
(1)每次使用new关键字创建对象时,运行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,

运行库就会继续为新对象分配空间。
(2)分配内存之前先计算字段所需的空间,在计算对象所需的空间,包括同步索引快和类型对象指针,

然后分配物理内存,新对象指针指向下一个可用内存区域
(3)内存不是无限大的。垃圾回收器必须执行回收以释放一些内存。垃圾回收器优化引擎根据正在进行的

分配情况确定执行回收的最佳时间。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象

并执行必要的操作来回收它们占用的内存。
5、代:代是CLR垃圾收集器的一种机制,它存在的惟一目的就是提高应用程序性能。一个基于代的垃圾收集器有以下几种假设:

对象越新,其生存期就越短;对象越老,其生存期就越长;对托管堆的一部分执行垃圾收集比对整个托管堆执行垃圾收集快。
       CLR支持3代内存:第0代对象预算容量为256k,第1代为2M,第2代为10M。
6、垃圾回收的过程:
第一次初始化,把对象分配到内存作为第0代,添加新对象时,先判断第0代空间是否充足,

不充足的话先在托管堆中查找不被应用程序使用的对象,把使用的做上标记,把内有标记的对象释放掉有标记的对象放到第1代,

新添加的对象放到第0代,再添加新对象时,判断第0代控件是否充足,充足直接添加,不充足在托管堆中查找做标记,

有标记的放入第1代,如果第1代空间不足,也在托管堆中查找做标记,有标记的放到第2代没有标记的释放掉,

把第0代有标记的放到第1代,依次类推...

图示:

 


7、文件:是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。
   流:提供一种向后备存储写入字节和从后备存储读取字节的方式。
8、文件AppendAlltext只能追加txt格式,但word能打开是因为word兼容txt文件
9、程序:遍历某个路径下的文件、文件夹及文件夹里的内容
class Program
    {
        static void Main(string[] args)
        {
            string path = @"E:\我的项目";
            DG(path);

        }
        static void DG(string path)
        {
            foreach(string str in Directory.GetFiles(path))
            {
                Console.WriteLine(str);
            }
            foreach(string str in Directory.GetDirectories(path))
            {
                DG(str);  
            }
        }
    }

本文出自 “大懒丫头” 博客,请务必保留此出处http://lanyatou.blog.51cto.com/3306130/624069

原文地址:https://www.cnblogs.com/babycool/p/2137289.html