http://www.cnblogs.com/bastard/archive/2013/03/04/2943302.html
http://blog.csdn.net/singleton1900/article/details/8615108
http://blog.csdn.net/yygydjkthh/article/details/24284713/