摘要: 多例模式单例模式的推广,可以有多个实例。多例类必须自己创建,管理自己的实例,并向外界提供自己的实例。有上限的多例模式 无上限的多例模式 阅读全文
posted @ 2012-12-22 12:46 Kyle_Java 阅读(294) 评论(0) 推荐(0) 编辑
摘要: java.util.concurrent.ThreadPoolExecutor,其构造方法1: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ... 阅读全文
posted @ 2012-12-17 23:21 Kyle_Java 阅读(2797) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式与工厂方法模式最大的区别在于:工厂方法模式针对的是一个产品等级结构,而抽象工厂模式需要面对多个产品等级结构。/* * 标识接口 * */public interface ProductA{ }/* * 标识接口 * */public interface ProductB{ }public class ContreteProductA1 implements ProductA{ public ContreteProductA1(){ //do someting }}public class ContreteProductA2 implements... 阅读全文
posted @ 2012-12-16 14:10 Kyle_Java 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 简单工厂的缺点对于“开-闭”原则的支持不够,因为如果有新的产品加入系统中,就要修改工厂类,将必要的逻辑加入工厂类中。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态,工厂方法模式保持了简单工厂模式的优点,也克服了它的缺点。 在工厂方法模式中,核心的工厂类不再是负责所有产品的创建,而是将... 阅读全文
posted @ 2012-12-15 14:16 Kyle_Java 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 线程池的作用: 1、线程池作用就是限制系统中执行线程的数量。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 2、根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任... 阅读全文
posted @ 2012-12-14 16:59 Kyle_Java 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 分治算法: 递归的二分查找就是分治算法的一个例子。把一个大问题分成两个相对更小的问题,并且去解决每一个小问题。对每一个小问题也是同样的解决方法:再把每个小问题分成更小的问题,并且解决它们。这个过程一直持续下去。分治算法常常是一个方法,而这个方法含有两个对自身的调用,分别对应于问题的两个部分。 归并排... 阅读全文
posted @ 2012-12-03 17:33 Kyle_Java 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 第一列:*第二列:**第三列:***第四列:****。。。求N列中 * 的个数? 我们发现:1)最后一列,它的值是N。2)总个数 = N + 所有剩余列的和。 public int triangle(int c) { return c + getCount(c - 1); }以上的代码是错误的,递归... 阅读全文
posted @ 2012-12-03 11:16 Kyle_Java 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 堆:实现了优先级队列的一种数据结构。由它实现的优先级队列的插入和删除的时间复杂度都是 O(logN),尽管这样删除的时间变慢一些,但插入的时间快很多。当速度非常重要,且有很多插入操作时,可以选择堆来实现优先级队列。堆的特点:1)完全的二叉树,除了树的最后一层不需要满的,其它的每一层从左到右都是满的。... 阅读全文
posted @ 2012-11-24 11:06 Kyle_Java 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 二叉树效率: 在查找过程中,需要访问每层的一个节点,所以只要知道有多少层就知道操作多长时间。假设是一个满树:如表中显示 节点数 层 数 1 1 3 2 ... 阅读全文
posted @ 2012-11-21 14:57 Kyle_Java 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 二叉树遍历实现: 下面简单介绍一下几种算法和思路:先序遍历:1. 访问根结点2. 按先序遍历左子树;3. 按先序遍历右子树;4. 例如:遍历已知二叉树结果为:A->B->D->G->H->C->E->F 中序遍历:1. 按中序遍历左子树;2. 访问根结点;3. 按中序遍历右子树;4. 例如遍历已知... 阅读全文
posted @ 2012-11-20 10:50 Kyle_Java 阅读(175) 评论(0) 推荐(0) 编辑