http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html http://www.cnblogs.com/one-cool/p/5088386.html