http://www.cnblogs.com/tangmingjun/archive/2012/05/30/2526301.html
http://www.cnblogs.com/tangmingjun/archive/2012/05/31/2528732.html
http://www.cnblogs.com/tangmingjun/archive/2012/05/30/2526301.html
http://www.cnblogs.com/tangmingjun/archive/2012/05/31/2528732.html