http://www.cnblogs.com/mcgrady/archive/2013/06/02/3113908.html http://www.cnblogs.com/mcgrady/archive/2013/06/05/3119982.html