http://www.cnblogs.com/cute/archive/2011/04/20/2022280.html http://blog.csdn.net/sudochen/article/details/8949118