http://my.oschina.net/onlytwo/blog/70984 http://www.cnblogs.com/sunzn/archive/2013/03/06/2946952.html