http://blog.csdn.net/scutshuxue/article/details/8350135 http://blog.csdn.net/scutshuxue/article/details/8351810