http://www.cnblogs.com/ut2016-progam/p/5627142.html
http://blog.csdn.net/shulianghan/article/details/47321177
http://www.open-open.com/lib/view/open1458715872710.html