参考博客: https://www.cnblogs.com/zxndgv/archive/2011/08/02/2125242.html、 https://www.cnblogs.com/Jstyle-continue/p/6358334.html。