摘要:
.Net内存泄露原因及解决办法1. 什么是.Net内存泄露(1).NET 应用程序中的内存您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈、非托管堆和托管堆。这里我们需要简单回顾一下。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。在运行库的控制下执行的代码称作托管代码。相反,在运行库之外运行的代码称作非托管代码。COM 组件、ActiveX 接口和 Win32 API 函数都是非托管代码的示例。COM/COM++组件,ActiveX控件,API函数,指针运算,自制的资源文件...这些的非托管的,其它就是托管的.在CLR上编译运行的代码就是托管代码 阅读全文
摘要:
一:什么是弱引用 了解弱引用之前,先了解一下什么是强引用 例如 : Object obj=new Object(); 就是一个强引用,内存分配一份空间给用以存储Object数据,这块内存有一个首地址,也就是obj所保存的数据,内存分配的空间中不仅仅保存着Object对象信息,还保存着自己(Object本身)被引用的次数。 当一个对象被强引用的形式创建的时候,本身被引用的次数已经为1. 接着Object o=obj; 这句代码执行之后,obj指向的Object的存储空间已经被引用了2次,所以Object保存的被引用数值为2. 总结:强引用最终导致的结果就是被引用的对象的被引用次数+1; ... 阅读全文
摘要:
多线程通信1. 当线程之间有先后的依赖关系时,属于线程之间的通信问题。也就是后一个线程要等待别的一个或多个线程全部完成,才能开始下一步的工作。可以使用:WaitHandle Class WaitHandle类作为基类来使用的,它允许多个等待操作。这个类封装了win32的同步处理方法。WaitHandle对象通知其他的线程它需要对资源排他性的访问,其他的线程必须等待,直到WaitHandle不再使用资源和等待句柄没有被使用。下面是从它继承来的几个类: AutoResetEvent:Notifies a waiting thread that an event has occurred. ... 阅读全文
摘要:
HTTP的缓存至于响应消息的实体,与请求消息的实体内容相似,这里只借绍下User-Agent头User-Agent头域的内容包含发出请求的用户信息。 Cache-Control头域(请求和应答通用头域)Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存 处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-tran 阅读全文
摘要:
排列(组合)算法的实现: /// /// 递归算法求排列 /// /// 泛型类型 /// /// /// public static void GetPermutation(T[] array, int startIndex, int endIndex) { if (startIndex == endIndex) { StringBuilder temp = new StringBuilde... 阅读全文
摘要:
一: 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。二: SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。这两个表。 一: 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。 二: SQL Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。这两个表由系统来维护﹐它们存在于内存中而不是在数据库中。这两个表的... 阅读全文
摘要:
ASP.NET编程模型中ASP.NET页面生命周期是指什么呢?它包括什么呢?ASP.NET编程模型之ASP.NET页面生命周期具体的过程有哪些呢?下面就开始我们的讲解吧:ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页的生命周期非常重要,这样就能在合适的生命周期阶段编写代码,以达到预期效果。此外,如果开发自定义控件,则必须熟悉页生命周期,从而正确地初始化控件,使用视图状态数据填充控件属性以及运行所有控件行为逻辑。ASP.NET编程模型之页面生命周期执行一系列步骤:页面的初 阅读全文
摘要:
聚簇索引和聚簇索引介绍一.什么是索引和建立索引的好处什么是索引 在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别,与书中的索引一样,数据库中的索引使您可以快速找到表中的特定信息。索引包含从表中一个或多个列生成的键,以及映射到指定数据的存储位置的指针,也就是说索引由键和指针组成。它是用于提高数据库表数据访问速度的数据库对象。建立索引的好处:索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。对于非聚集索引,有些查询甚至可以不访问数据页。如字典的目录就可以查到所有拼音第一字母为z的所有字。聚集索引可以避免数据插入操作集中于表的最后一个数据页。一些情况下,. 阅读全文
摘要:
Session—管理用户会话状态什么是状态管理? 指对同一页或不同页的多个请求维护状态和页信息的过程为什么要进行状态管理? Web页是无状态的,不保存任何用户请求信息,而且到服务器的每一往返过程都将销毁并重新创建页,所以超出单个页的生命周期之后,页信息将不存在。状态管理的作用指示用户信息使得页与页之间、请求与请求之间能够共享信息更为快速的数据存储和读取从一个客户到达某个网页开始,到其离开该网页为止的这段时间内,服务器会为该用户分配一个Session,以保存该用户会话时所需要的信息当用户在页面之间切换时,存储在Session对象中的变量不会被清除,当客户访问网页时,这些变量会一直存在Sessio 阅读全文
摘要:
产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。二锁的分类锁的类别有两种分法:1.从数据库系统的角度来看:分为独占锁(即排它锁),共享锁和更新锁MS-SQLServer使用以下资源锁模式。锁模式描述共享(S) :读锁,用于不更改或不更新数据的操作(只读操作),如SELECT语句。更新(U) :(介于共享和排它锁之间),可以让其他程序在不加锁的条件下读,但本程 阅读全文