http://www.cnblogs.com/zhanglanyun/archive/2012/12/04/2800999.html http://blog.csdn.net/cauchy8389/article/details/8850130