<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mmonkeyer的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mmonkeyer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mmonkeyer]]></copyright><item><title><![CDATA[从阶乘的实现的例子，一步一步看程序架构的演化。]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/84017006</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/84017006</guid><author>mmonkeyer</author><pubDate>Wed, 14 Sep 2011 15:26:59 +0800</pubDate><description><![CDATA[
阶乘设计的演化过程

Table of Contents


1 递归方式
2 封装进一个工具类
3 迭代实现
4 解决返回值超出整型最大值问题
5 加入缓存机制
6 使用接口编程，把算法实现推向实现，即使用了策略模式

7 如何实现这种方式的动态调用？

7.1 用map存储类映射
7.2 重写阶乘工具类
7.3 缓存实现
7.4 迭代实现
7.5 递归实现
...]]></description><category></category></item><item><title><![CDATA[05年写的一个儿时玩的4子棋游戏]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83778321</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83778321</guid><author>mmonkeyer</author><pubDate>Sun, 12 Dec 2010 12:49:48 +0800</pubDate><description><![CDATA[如看不到图片，请点击下面的链接
http://hi.baidu.com/dapplehou/blog/item/5ddafdfae8a860cfb58f31b3.html
 

儿时常和伙伴们玩下棋游戏，比如动物棋、两子棋、四子棋（我们叫这种棋为两个打一个）。后来学象棋，就不玩它们了，但能勾起特别多的对童年幸福时光的回忆。因为怀旧，就写了这样一个小游戏。
一开始，两军对垒：

如果自...]]></description><category></category></item><item><title><![CDATA[写了一个MSN客户端]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83774720</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83774720</guid><author>mmonkeyer</author><pubDate>Mon, 06 Dec 2010 09:47:51 +0800</pubDate><description><![CDATA[想借用免费服务器做网络应用，MSN服务器是一个选择，今天对它做了个简单测试，发现没问题，顺便就写了个Java版本的MSN客户端，Linux下也可用。这里有几张截图
 
见这里：http://hi.baidu.com/dapplehou/blog/item/6da2ddc4849accda38db497a.html...]]></description><category></category></item><item><title><![CDATA[写了一个快速阅读训练的小软件]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83770934</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83770934</guid><author>mmonkeyer</author><pubDate>Sun, 28 Nov 2010 22:40:46 +0800</pubDate><description><![CDATA[看过某篇教人快速阅读的文章，方法是让遮挡物从书的第一行到最后一行匀速移动‍，越遮越多，从而制造紧迫感，逼迫人进行快速阅读，久而久之，人的阅读速度就会有大幅的提升。我觉得这个完全可以写个程序实现，就周末抽了点时间写了一个。这里截了几个图，功能很简单，界面也不好看，但遮挡功能无碍，而且是自己用着玩，就不费时间在界面上花心思了。
 
百度贴图设置了防盗链，JavaEye好像又不安全（会被关闭），所以...]]></description><category></category></item><item><title><![CDATA[Concurrent包常用方法简介]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83759910</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83759910</guid><author>mmonkeyer</author><pubDate>Fri, 05 Nov 2010 23:54:07 +0800</pubDate><description><![CDATA[
Table of Contents


1 Executor接口 
2 ExecutorService接口 
3 ScheduledExecutorService接口 
4 Executors类 
5 结束 





1 Executor接口

留给开发者自己实现的接口，一般情况下不需要再去实现。它只有一个方法
void execute(Runnable comma...]]></description><category></category></item><item><title><![CDATA[Java 并发]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83733329</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83733329</guid><author>mmonkeyer</author><pubDate>Mon, 18 Oct 2010 15:56:42 +0800</pubDate><description><![CDATA[并发

Table of Contents



1 什么是并发问题。 


2 java中synchronized的用法 


3 Java中的锁与排队上厕所。 


4 何时释放锁？ 


5 Lock的使用 


6 利用管道进行线程间通信 


7 阻塞队列 


8 使用Executors、Executor、ExecutorService、Thread...]]></description><category></category></item><item><title><![CDATA[不同Framework中DAO层的分析]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83708455</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83708455</guid><author>mmonkeyer</author><pubDate>Mon, 13 Sep 2010 15:06:23 +0800</pubDate><description><![CDATA[http://hi.baidu.com/dapplehou/blog/item/6ba8034f5114e038aec3abdb.html 


Table of Contents


1 言前

2 项目1 (久远，尚无SSH流行）

2.1 使用方式
2.2 原理
2.3 UML
2.4 优点
2.5 缺点



3 项目2

3.1 使用方式(步骤）
3.2 原...]]></description><category></category></item><item><title><![CDATA[数据库的哈希设计]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83696032</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83696032</guid><author>mmonkeyer</author><pubDate>Wed, 18 Aug 2010 17:01:27 +0800</pubDate><description><![CDATA[数据库的哈希设计

Table of Contents



1 用哈希的key代替字符串上的索引，提高查询效率。 

1.1 什么是hash 
1.2 如何在数据库设计中使用hash 
1.3 使用计算列 
1.4 如何在多表关联中使用哈希 



2 库表散列 

2.1 ORAHASH 函数 
2.2 哈希拆分例1 
2.3 哈希拆分例2 
2.4 除留余数法 ...]]></description><category></category></item><item><title><![CDATA[一例胜千言，详谈SQL Sever数据库锁]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83680243</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83680243</guid><author>mmonkeyer</author><pubDate>Thu, 05 Aug 2010 17:01:02 +0800</pubDate><description><![CDATA[数据库锁

Table of Contents


1 前言 
2 锁的种类 
3 何时加锁？ 
4 锁的粒度 
5 锁与事物隔离级别的优先级 
6 数据库的其它重要Hint以及它们的区别 
7 锁的超时等待 
8 附：各种锁的兼容关系表 
9 如何提高并发效率 
10 后记 





1 前言 

数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉...]]></description><category></category></item><item><title><![CDATA[来点简单的，Adaptor 适配器模式]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83646304</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83646304</guid><author>mmonkeyer</author><pubDate>Tue, 22 Jun 2010 17:04:56 +0800</pubDate><description><![CDATA[今天看了黑暗浪子的博客，喜欢他的博客，一看就是个爽快人。很高兴，一高兴，就想起来贴篇自己的文章以示高兴。

封装思想的又一种应用。类似挂羊头卖狗肉。比如一个类业已存在(类A)，且正合我用，唯一遗憾是该类的方法名与用户要求的不同，那么用另一个新的、方法名符合规定的类套在类A身上是最顺其自然不过的方法了。新类的所作所为无非都是通过调用类A而实现。

在什么场合才需要挂羊头卖狗肉。第一，用户不关...]]></description><category></category></item><item><title><![CDATA[职责链模式(Chain of responsibility)以及servlet中filter的原理]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83645867</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83645867</guid><author>mmonkeyer</author><pubDate>Mon, 21 Jun 2010 22:51:33 +0800</pubDate><description><![CDATA[先看经典职责链代码，

(代码来自维基）

[code=&quot;java&quot;]package pattern;

import java.io.*;

abstract class PurchasePower {

	protected final double base = 500;
	protected PurchasePower successor;

	public vo...]]></description><category></category></item><item><title><![CDATA[工厂方法模式(Factory method)以及与抽象工厂(abstract factory)的区别]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83643423</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83643423</guid><author>mmonkeyer</author><pubDate>Mon, 14 Jun 2010 13:48:57 +0800</pubDate><description><![CDATA[先看经典说法，

Define an interface for creating an object, but let subclasses
decidewhich class to instantiate. Factory Method lets a class defer
instantiation to subclasses. ----Gang of Four (定义一个创建对象的...]]></description><category></category></item><item><title><![CDATA[命令模式(command pattern)]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83641210</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83641210</guid><author>mmonkeyer</author><pubDate>Wed, 09 Jun 2010 16:44:58 +0800</pubDate><description><![CDATA[命令模式，实现了把命令调用与命令执行分开。用途广泛。

它可以批量执行命令，比如它可以用于进度条的显示。多个命令顺序执行，进度
条来表示命令的执行进度。如果每个命令都用command封装，成为命令对象
(command object)，并且每个命令对象都有获取执行时间的方法，那么就可以方
便的获取整个执行过程的时间。据此就可以用进度条显示出这一系列任务的执行
进度。它可以实现重做(un...]]></description><category></category></item><item><title><![CDATA[面向对象更是一种方法论]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83638184</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83638184</guid><author>mmonkeyer</author><pubDate>Thu, 03 Jun 2010 11:26:49 +0800</pubDate><description><![CDATA[面向对象更是一种方法论，而不仅仅是一种技术。掌握一种技术可以解决某一特定问题，掌握一种方法却可以随机应变、因势利导、因地制宜。就像张无忌学习太极拳，招式忘记的越多，拳中的圆转不断之意领会的越深，所能解决的问题域就越阔，威力也就越大。

如何去看决定了看到了什么。面向对象也是如此。从技术实现角度看，对象就是拥有方法的数据，就是属性和方法的结合。在这种思维的指导下，构建对象就变成了去搜集属性和方法...]]></description><category></category></item><item><title><![CDATA[亨元模式（Flyweight pattern）]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83636326</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83636326</guid><author>mmonkeyer</author><pubDate>Sun, 30 May 2010 22:24:40 +0800</pubDate><description><![CDATA[翻译为亨元模式，或直译为轻量级模式。所谓亨元，就是被其它对象共享使用的
对象。通过这种方式，系统减少了内存的占用。比如一个系统有一个成百上千、
成千上万的小对象，这些小对象可能拥有着共同的信息，那么这些共同的信息就
没有必要也重复成千上万次。把这些共同信息抽取出来，形成一个对象，即是亨
元。这些成千上万的其它对象只需要引用这个亨元即可。

举个例子，在棋类程序中，有时候我们会把一个棋子...]]></description><category></category></item><item><title><![CDATA[Singleton Pattern 单态模式]]></title><link>https://blog.youkuaiyun.com/mmonkeyer/article/details/83635984</link><guid>https://blog.youkuaiyun.com/mmonkeyer/article/details/83635984</guid><author>mmonkeyer</author><pubDate>Sat, 29 May 2010 15:38:16 +0800</pubDate><description><![CDATA[Singleton Pattern 单态模式。

这个模式较简单，就是为了保证一个类只有一个实例，用一个入口来获取该实例。

例子如下(代码来自维基）：

[code=&quot;java&quot;]class Foo {
    private static Helper helper = null;
    private Foo(){}
    public static Helper ge...]]></description><category></category></item></channel></rss>