http://www.blogjava.net/lincode/archive/2011/09/16/358805.html http://www.2cto.com/kf/201403/288476.html