Note: I don't consider myself a 'Master', and that's in part because it's hard to use that phrase when I see names like Bob Lee in my inbox almost every day.
All of Steve's recommendations are good, here are some others:
Read
- Read blogs of the real masters for instance, Neal Gafter, Danny Coward, Peter Ahé, Brian Goetz, Cliff Click, et cetera. I work for Google so I naturally lean toward Googlers' blogs, some of which are: Jeremy Manson, Bob Lee, Jesse Wilson, Kevin Bourrillion (two 'r's, two 'l's, I know I know.).
Bruce Eckel also discusses some interesting stuff.
Read Steve Yegge's blog, if only so you know what's going on when other people talk about it.
- Participate in a reading group. From a personal perspective, the thing that worked best for me was to skip participating and go straight to leading the group. Occasionally, (and this depends on the group,) you don't need to be a subject matter expert to lead a reading group, just a desire to learn a topic, and a few people who will look to you to set the group's tone. I find that the fear of embarrassing myself as an unprepared leader is usually enough to get me through a difficult book. (Except that one time when we read The Haskell School Of Expression. I make no apologies for that one.)
- Read Java Puzzlers. It doesn't feel like a mastery-type book, but only because it's so much fun.
- Read the Core Java books. They are invaluable references.
- Read some of the JDK source. Do you know how ArrayList got its name? Have you tried to understand ConcurrentHashMap from the inside? Go find out.
- Try to write something meta, like a class file decompiler, a custom classloader, or a debugger. You don't have to finish it, and it doesn't even have to have to be revolutionary. You're doing it for yourself so you come away with a bonafide understanding of the insides. (Personally, I started writing a decompiler in 2004. When I got hired by Google, I stopped putting time aside for it.)
- Regurgitate what you have learned. You choose the format: a blog, an online document, an open-source contribution, a presentation. Heck, you can even write a book. Regurgitating the information helps you become a subject master.
- Participate in Java Ranch or any other online forum, and the answer questions you find online. Answering other people's questions is a great way to reinforce your own knowledge. Of course, use it to ask questions about things you don't understand. A true master knows it's good to ask questions.