摘要: 1.e是一个重要的常数,但是我一直不知道,它的真正含义是什么。它不像π。大家都知道,π代表了圆的周长与直径之比3.14159,可是如果我问你,e代表了什么。你能回答吗?维基百科说:"e是自然对数的底数。"但是,你去看"自然对数",得到的解释却是:"自然对数是以e为底的对数函数,e是一个无理数,约等于2.718281828。"这就构成了循环定义,完全没有说e是什么。数学家选择这样一个无理数作为底数,还号称这种对数很"自然",这难道不是很奇怪的事情吗?2.昨天我读到一篇好文章,它把这个问题解释得非常清楚,而且一看就懂。 阅读全文
posted @ 2011-07-12 17:29 freezym 阅读(1132) 评论(0) 推荐(0) 编辑
摘要: 没事翻大学时的课件,看到Unix课的关于进程的一生讲得挺生动的,在这记录一下。unix进程的一生1.随着一句fork,一个新进程呱呱落地,但它这时只是老进程的一个克隆。2.然后随着exec,新进程脱胎换骨,离家独立,开始了为人民服务的职业生涯。3.人有生老病死,进程也一样,它可以是自然死亡,即运行到main函数的最后一个“}”,从容地离我们而去。4.也可以是自杀,自杀有2种方式,一种是调用exit函数,一种是在main函数内使用return,无论哪一种方式,它都可以留下遗书,放在返回值里保留下来;它还甚至能可被谋杀,被其它进程通过另外一些方式结束他的生命。5.进程死掉以后,会留下一具僵尸,wa 阅读全文
posted @ 2011-04-22 00:55 freezym 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 依赖注入“家人” => "外人"See objects as services依赖于抽象,而不是实现依赖注入是一个过程:1)客户端依赖于服务类接口(注入点)2)客户类不直接实例化具体服务类3)上下文注入具体服务类给客户类常见实现方式:Setter注入、构造注入、接口注入(应用于不同活跃的的多态性)已有框架:spring、spring.net、Guice、Unity…… 阅读全文
posted @ 2011-04-12 10:54 freezym 阅读(160) 评论(0) 推荐(0) 编辑
摘要: C#下,实现代码级数据库表(多个数据库)排他锁:可以使用lock关键字 ==> 唯一object对象的获取(GetSycObject)GetSycObject的实现:1、由数据库ID和表ID结合创建标识ID。2、使用静态的Dictionary<int, Object>类型变量存放表对应的object。3、GetSycObject方法本身的排他。总结以上,排他锁工具类代码如下: 1 public static class DBSynchronousHelper 2 { 3 4 private const int INCREASE = 1000; 5 /// <summar 阅读全文
posted @ 2011-02-24 16:33 freezym 阅读(1060) 评论(0) 推荐(0) 编辑
摘要: 觉得程序员更适合待在博客园,所以今天把博客搬到了博客园。百度空间不支持导出xml。博客园也没有从百度搬家的支持。又懒得找博客搬家工具。我用了个不太聪明的方法:百度==>博客大巴==>xml==>博客园博客成功搬家。 阅读全文
posted @ 2011-02-21 22:38 freezym 阅读(250) 评论(4) 推荐(0) 编辑
摘要: 因为懒散,很久没有写日志了。因为懒散,也很久没有像样的学习了。人生很有可能就这么安逸懒散的过去了。今天的最后一刻,我提醒自己。 阅读全文
posted @ 2011-02-20 23:43 freezym 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 静态成员数据和静态成员函数1.C中静态数据和静态函数的用法C语言中定义一个静态变量和静态函数主要是为了满足某个文件的需求比如我们在文件List.c中定义static int count = 0; //静态变量static int get_last_node(List *Head);//定义静态函数二者的作用域都仅仅在文件List.c中。如果main函数在static int get_last_node(List *Head)之前定义,那么就应该在头文件后面用语句:static int get_last_node(List *Head);//定义静态函数进行声明。如果main定义在static 阅读全文
posted @ 2010-04-27 23:30 freezym 阅读(3334) 评论(1) 推荐(0) 编辑
摘要: 编写C++模板类时,大部分编译器不允许把类的申明和类成员函数的实现分放在.h和.cpp文件,必须放在同一个文件中或者main.cpp同时引用模板类的.h和.cpp。而通常的做法是把模板类的申明和函数实现都放在一个.h中。原因是:当单独模板类.cpp和main.cpp两者单独编译时,模板类的T类型在使用前还未知类型,如何分配内存还无法确定,自然就无法生成目标文件了。 阅读全文
posted @ 2010-04-27 23:27 freezym 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 存储过程返回自增ID的方法:--方法一:Select   @@IDENTITY--方法二:Select   IDENT_CURRENT( 'TEST ')--方法三:Select   SCOPE_IDENTITY(   ) 阅读全文
posted @ 2010-04-26 09:16 freezym 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 根据具体需求,一般分为以下几种可能性:1.如果你返回的集合是只用于遍历,不可修改的,则返回IEnumerable<T>2.如果返回的集合需要修改,如添加和删除元素,用ICollection<T>3.如果返回的集合需要支持排序,索引等,用IList<T>4.如果返回的集合要支持索引,但不能添加,删除元素,用ReadOnlyCollection<T> 阅读全文
posted @ 2010-03-24 13:36 freezym 阅读(213) 评论(0) 推荐(0) 编辑