很好的文章: http://www.havenliu.com/java/514.html http://blog.csdn.net/lun379292733/article/details/18673081