I'm a hardcore c++ programmer, however I'm getting a feeling that my company might start a really promising project in Java. I really want to get on that project, so I need to improve my Java skills. I do know java (last version I used was 1.1), however I need to freshen up a bit. Can anyone suggest a book that will help me refresh my skills, as well as learn all the advanced stuff there is (ODBC connectivity, multithreading, sockets).