.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
出处:http://www.cnblogs.com/babycool/
本文首发博客园,版权归作者跟博客园共有。
转载必须保留本段声明,并在页面显著位置给出本文链接,否则保留追究法律责任的权利。