http://www.cnblogs.com/hawkon/p/3593709.html
http://www.open-open.com/lib/view/open1388317075000.html