参考: http://www.blogjava.net/icewee/archive/2012/05/21/378719.html http://www.cnblogs.com/huzi007/p/4330188.html http://blog.sina.com.cn/s/blog_8417657f0101fjlb.html https://blog.csdn.net/qq_37022150/article/details/74910488