http://www.cnblogs.com/yan-boy/archive/2012/09/16/2687462.html https://blog.csdn.net/xianglitian/article/details/6023656