参考: http://www.cnblogs.com/hesiming/archive/2011/03/15/1984444.html http://blog.csdn.net/liukun321/article/details/8848417 http://www.cnblogs.com/taskiller/archive/2012/12/14/2817650.html