应用 http://blog.csdn.net/qq_27093465/article/details/52180865
原理 http://blog.csdn.net/javazejian/article/details/71333103