c++:
http://zhidao.baidu.com/question/179909768.html
java:
http://zhidao.baidu.com/question/88196798.html