摘要: 原文链接:http://www.cnblogs.com/wangjq/archive/2012/07/09/2582978.html 1. 概述 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 2. 模式中的角色 2.1 抽象 阅读全文
posted @ 2017-09-17 20:48 blythe 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://blog.csdn.net/jason0539/article/details/22468457 1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 2. 解决的问题 即Adapter模式使得 阅读全文
posted @ 2017-09-17 20:40 blythe 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 线程安全的实现方法i. 互斥同步实现方式:临界区(critical section)、互斥量(Mutex)、信号量(Semaphore)1. Java中最基本的互斥手段就是:synchronized关键字,经过编译后,会在同步代码前后分别形成monitorenter和monitorexit两个字节码 阅读全文
posted @ 2017-09-17 18:26 blythe 阅读(244) 评论(0) 推荐(0) 编辑
摘要: public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> ans = new ArrayList<>(); if (root == null) return ans; // 使用两个栈维护顺序 S 阅读全文
posted @ 2017-09-17 16:12 blythe 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://blog.csdn.net/xiaoliucool1314/article/details/50963293 一、问题描述 这是三道典型的dp问题。 最长上升子序列:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i<j,必有a[i]<a[j],这样最长的子 阅读全文
posted @ 2017-09-17 16:11 blythe 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://www.cnblogs.com/520yang/articles/4807408.html 1、缓存的分类 缓存分为服务端侧(server side,比如 Nginx、Apache)和客户端侧(client side,比如 web browser)。 服务端缓存又分为 代理服 阅读全文
posted @ 2017-09-17 16:10 blythe 阅读(105) 评论(0) 推荐(0) 编辑