When I was a university student, I used the official tutorials. They are pretty well written and will get you up to speed with the basics quickly.
However, if you are already writing Java -- as your post suggests -- a better choice might be Effective Java by Joshua Bloch. Unfortunately it does not have exercises, but otherwise is the usual recommendation for developers who are new to Java but not completely clueless.
For exercises, you can find countless so-called ``katas'' on the Internet, many of them were originally written for Java. Sadly I don't know of any single repository with high quality exercises, if you happen to find one, please do share. There are websites where you can do similar exercises interactively. The only one I used is exercism.io
, which has mentors reviewing your code for you. The only reason I am reluctant to recommend it is because they provide unit tests instead of having you write them yourself. (On the other hand, for Scheme programmers I would recommend it wholeheartedly.)
It might also be advisable to learn the basics of UML. Even if you won't use it yourself, it is likely that your coworkers will end up drawing up something really similar to it at the whiteboard. For this a good book is UML for Java Programmers. (Or maybe people don't use it anymore? My coworkers do, although we don't write Java.)
If you are bored, A Little Java, a Few Patterns by Felleisen and Friedman is a pretty fun take on Java, just be sure never to actually write code like that. No. You should NEVER! No matter the weather!!