https://www.v2ex.com/t/194357 https://www.zhihu.com/question/19839469 https://blog.csdn.net/zhruifei/article/details/78457703 https://blog.csdn.net/hougelou/article/details/7814794 http://bbs.51cto.com/thread-1548174-1.html