http://www.cnblogs.com/Bench/articles/1716026.html http://www.cnblogs.com/yuxuanji/articles/2126275.html