摘要: 标签: 设计模式 原型模式 是使用内存复制的方法创建对象的模式,当需要创建大量类似的对象时,性能较好。属于 创建型模式 。 区别于工厂模式, 原型模式是先创建一个对象并缓存起来,然后后续需要创建这种对象的时候,只需要调用该对象 方法,即可获取一个新对象,由与 是内存数据复制操作,这样可以避免 操作带 阅读全文
posted @ 2017-03-27 13:28 斑鱼 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 建造者模式 :是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式通常包括下面几个角色: 1. Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。 2. Concret 阅读全文
posted @ 2017-03-26 15:48 斑鱼 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 标签: 设计模式 单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点的模式。属于 建造型模式 。 1. 简单方式, 懒加载,单线程 2. 懒加载,考虑多线程,但锁住整个get方法,效率低 3. 考虑多线程,不加锁,效率高,但饿汉加载,浪费内存(推荐) 4. 双重校验锁,多线程,效率高,实 阅读全文
posted @ 2017-03-26 14:56 斑鱼 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 标签: 算法 初始问题 :幼儿园小孩排成一行,但是男孩和女孩相邻会冲突,现在你是老师,每次只能调换相邻两个小孩的位置,要使男女冲突最少,至少要调换多少次? 输入情况 : 用形如'BBBGGBB'的一个字符串表示队伍,'B'表示男孩,'G'表示女孩。 输入情况 :最少的调换次数。 目标是使男女冲突最少 阅读全文
posted @ 2017-03-26 11:50 斑鱼 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 标签: 算法 初始问题 :在100层楼里,给定2个鸡蛋,在 安全楼层 以上的楼扔鸡蛋会碎。设计一种方案,测试哪层楼是 最高安全楼层 ,要求测试次数最少。 思路:这是典型的 动态规划 问题。 假设$f[n]$表示从$n$层楼找到摔鸡蛋不碎安全楼层的 最少判断次数 。 假设第一个鸡蛋第一次从第$i$层扔 阅读全文
posted @ 2017-03-25 23:27 斑鱼 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 标签: 计算机网络 假设下面有4个网络: 如果这四个进行 路由汇聚 ,能覆盖这四个网络的汇总地址是: 算法思路是,首先从左到右开始,把不同的那个ip数字换算成二进制,即 这四个数的前五位相同都是 ,所以加上前面的 这两部分相同的位数,网络号就是 。把共同的保留下来,其他全部为0,就是路由汇聚的地址。 阅读全文
posted @ 2017-03-25 19:22 斑鱼 阅读(2264) 评论(0) 推荐(0) 编辑
摘要: http://www.jianshu.com/p/63e76826e852 阅读全文
posted @ 2017-03-23 12:02 斑鱼 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 标签: java基础 多线程 和`ReentrantLock`都是多线程中的上锁操作,目的是使程序互斥执行,从而保证对资源的访问是线程安全的。 1. 使用方法 是一个关键字,可以修饰方法、语句块。但 是一个类,使用时必须在用户类中组合实现这个类,并调用 ,`unlock()`等方法来控制。 2. 锁 阅读全文
posted @ 2017-03-23 11:51 斑鱼 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1. 开放定址法 线性探测再散列,二次探测再散列,伪随机探测再散列。 2. 重哈希法 多个哈希方法,如果第一下哈希不能找到空位放置,则采用第二个,第三个哈系方法计算,直到没有冲突发生为止。 3. 链地址法 JDK的HashMap中采用的方法。如哈希时发生冲突,在哈希到的位置上建立 链表 ,在java 阅读全文
posted @ 2017-03-23 10:12 斑鱼 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 标签: 算法 复杂度分析 1. 主定理定义 以下是评估递归时间复杂度的 主定理 ,例如有递归形式 $$T(n) = aT(n/b) + f(n)$$ 其中, $a≥1$和$b≥1$, 均为常数, $f(n)$是一个确定的正函数。 在$f(n)$的三类情况下, 我们有$T(n)$的渐近估计式: 1. 阅读全文
posted @ 2017-03-21 10:22 斑鱼 阅读(1322) 评论(0) 推荐(0) 编辑