That's a topic I want to open, I suggest here to throw links to free online tests for Java, also propose to discuss some interesting puzzles of these tests.
Why is it necessary? Quite simply, I think there are many among us beginners and not so young specialists in the field of Java, who want to
A) To increase their level of qualification
B) Understand what they are worth as professionals
A test is a very good way to learn something new, because these little puzzles allow escape from the heavy projects with a complex subject area directly in Java.
Here are just three of my links, though there is no interactivity, it's about html, so the results will have to take it for.
Here's a link from me: