http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495788.html http://blog.csdn.net/v_july_v/article/details/7624837