摘要: 一、单例模式介绍 单例模式模式在程序的设计领域被广泛使用,例如设计一个单例模式对象来读取配置文件信息等。单例模式的主要特点是在内存中只存在一份对象,该对象的生命周期从创建到应用的结束。其中单例模式又分为懒汉式以及饿汉式的单例模式,他们各自有各自的优缺点,具体使用哪种方式需要根据对象的特点来做出选择... 阅读全文
posted @ 2015-01-13 22:57 charili 阅读(425) 评论(0) 推荐(1) 编辑
摘要: java和C#中的内存的分配和释放都是由虚拟机自动管理的,此前我已经介绍了CLR中GC的对象回收方式,是基于代的内存回收策略,其实在java中,JVM的对象回收策略也是基于分代的思想。这样做的目的就是为了提高垃圾回收的性能,避免对堆中的所有对象进行检查时所带来的程序的响应的延迟,因为jvm执行... 阅读全文
posted @ 2014-12-28 15:49 charili 阅读(4127) 评论(0) 推荐(1) 编辑
摘要: 一、泛型的基本概念 java与c#一样,都存在泛型的概念,及类型的参数化。java中的泛型是在jdk5.0后出现的,但是java中的泛型与C#中的泛型是有本质区别的,首先从集合类型上来说,java 中的ArrayList和ArrayList是同一个类型,在编译时会执行类型擦除,及java中的类型... 阅读全文
posted @ 2014-12-27 17:08 charili 阅读(15824) 评论(0) 推荐(1) 编辑
摘要: c#相较于c,c++而言,在内存管理上为程序员提供了极大的方便,解放了程序员与内存地址打交道,提高了程序员的工作效率。比如c中分配的malloc堆空间没有释放导致的内存泄露,数组越界导致的踩内存错误,使用了已释放的内存空间错误等等。这些在C#中统统的都不存在,主要是由于clr提供的安全检查机制... 阅读全文
posted @ 2014-12-27 13:14 charili 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: 通常我们需要定时执行一段任务的时候,我们就需要定时器,这时我们就可以使用c#System.Threading空间中的 Timer定时器;他是个异步定时器,时间到时每次都是在线程池中分配一个线程去执行任务。下面我们来看一个有趣的例子: class Program { static ... 阅读全文
posted @ 2014-12-27 12:08 charili 阅读(2041) 评论(0) 推荐(1) 编辑
摘要: 在c#中我们经常使用到foreach语句来遍历容器,如数组,List,为什么使用foreach语句能够遍历一个这些容器呢,首先的一个前提是这些容器都实现了IEnumerable接口,通过IEnumerable接口的GetEnumerator方法获得实现IEnumerator接口的对象。IEnum... 阅读全文
posted @ 2014-12-21 01:29 charili 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 一、泛型概述:泛型是C# 2.0引入的新特性,泛型为开发者提供了类型的参数化的形式,他带来的最大的好处之一是代码的复用。他是通过运行时类型绑定来实现代码的复用,或者说算法的复用。其次,泛型为我们带来的另一个好处是性能的提升,再次,它提供了编译时类型的安全检查,为程序员减轻了负担。下面将分别通过例子来... 阅读全文
posted @ 2014-12-20 15:12 charili 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 我们知道java中new方式创建的对象都是在堆中创建的,而局部变量对应的值存放在栈上。那么java中的int [] arr={1,2,3}是存放在什么地方的呢,int []arr = new int[3]又是存放在什么地方的呢, 下面我们通过编写两个小例子,通过查看生成的字节码文件,来了解jvm会如 阅读全文
posted @ 2014-11-27 22:54 charili 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 1.索引器概述c#中的索引器提供了语法的简洁方便的特性,它允许你访问对象元素如同访问数组那样,通常我们会在实现索引器的类的内部维护一个内部的集合或数组,通过索引器来实现对集合中的元素的存取操作。例如,我定义了一个row对象,内部维护了column数组,我们访问通过数组的方式访问row就相当于访问了对... 阅读全文
posted @ 2014-11-27 22:51 charili 阅读(299) 评论(0) 推荐(0) 编辑
摘要: redis在.net中的应用 阅读全文
posted @ 2014-11-16 23:43 charili 阅读(3417) 评论(0) 推荐(2) 编辑