https://www.jianshu.com/p/99e857b96c52 https://blog.csdn.net/zhongshijun521/article/details/51953215 http://www.mamicode.com/info-detail-2378326.html http://www.cnblogs.com/lanyueff/p/7800532.html