http://www.open-open.com/lib/view/open1409197907260.html
http://blog.csdn.net/yanzi1225627/article/details/38882907