http://blog.csdn.net/zhoukun1008/article/details/52124242
http://blog.csdn.net/conquer0715/article/details/42805635
http://blog.csdn.net/a352193394/article/details/6966931
http://www.blogjava.net/shiwenfeng/archive/2009/12/30/307731.html