02 2013 档案

摘要:show global status 和show session status可以查看数据库server上当前的各项参数。范围限于使用当前用户名登陆的所有应用。 常见的选项有: connections表示总共有多少连接被打开, max_used_connections表示最多有这么个connection被同时使用。 threads_connected表示有多少线程曾经连接过。 threa... 阅读全文
posted @ 2013-02-25 23:43 永远是学生 阅读(156) 评论(0) 推荐(0) 编辑
摘要:thread和runnable已经out了。取而代之的是callable<V>,它的结果存在future<V>中。后者有get对象可以阻塞并最终获得异步结果。FutureTask既是callable又是future。可以作为一个执行单元。 直接启动一个thread执行callable是不明智的,因为太多的短命的线程会影响jvm的性能。较好的办法是Executors的线程池。它有不同的方法创建不同... 阅读全文
posted @ 2013-02-17 15:31 永远是学生 阅读(237) 评论(0) 推荐(0) 编辑
摘要:当项目做大的时候,分清楚单元测试和集成测试是必要的。在单元测试的阶段,分清楚stub和mock的概念,有助于我们使用最合适的工具,最小的代价实现我们的测试目标和外部依赖之间的关联。 从概念上说stub是外部依赖的一个简单实现,它暴露出测试所需要的方法,以及需要验证的状态。单元测试的时候,它的这些方法会被调用到,而其内部状态也会发生改变,我们就可以对这个内部状态进行验证。它的理论上,如果我们测试目... 阅读全文
posted @ 2013-02-17 11:29 永远是学生 阅读(625) 评论(0) 推荐(0) 编辑
摘要:基于比较大排序算法至少需要O(n*lgn)的复杂度。对于一些特殊的输入我们有一些特殊的算法,有可能得到复杂度为O(n)的算法。本文简要描述其中的几种:count排序,基数排序和桶排序。 count排序的假设是被排序的字段在一个有限的范围内,比如对1000人按照年龄排序。 count排序需要两个额外的变量,一个用于存放排序结果,长度是n,另一个用于存放中间结果,长度是k。其中n为输入的长度,k-... 阅读全文
posted @ 2013-02-14 23:01 永远是学生 阅读(423) 评论(0) 推荐(0) 编辑
摘要:本文将讲解泛型的基本用法,内部的实现机制,限制等。希望本文能帮助读者更好的利用泛型解决实际问题。 对泛型的需求是显而易见的。如果没有泛型,我需要为int和string写两个排序函数,虽然代码完全一样。没有泛型,容器中存放的都是Object,调用方法需要进行强制转换,并且需要手动保证容器类型的一致性。 正如大家所知道的,实现泛型有两种基本的方法,泛型class和泛型method。下面这种是泛型m... 阅读全文
posted @ 2013-02-11 22:39 永远是学生 阅读(1542) 评论(0) 推荐(0) 编辑
摘要:代码复用有以下几个好处: 1. 避免重复劳动,提高效率; 2. 减少需求变动影响的代码范围; 3. 保持系统的一致性; 4. 降低测试成本; 为了实现代码重用,有以下几个方法可以使用:抽取方法,抽取类。 抽取方法适用于class中的复用,比如: class A{ public void x0(){ …… ... 阅读全文
posted @ 2013-02-10 23:00 永远是学生 阅读(4186) 评论(0) 推荐(0) 编辑