学习总结与部分源码