There shouldn't be any shortcut for improving your programming skills, however, certain guidelines must help. People claim that the more you code, the better you can code. Of course it is right in some sense, atleast your code will be less error-prone as you've got the previous experiences of making mistakes. But besides that, is there anything else you can do better? I'm afraid no. Hope these guidelines help you in some ways.
First, study Java API.
Inevitably, to be strong in Java, you have to know how to utilise Java API. Yes, utilise but not memorize. You don't have to remember Java API (although some interview tests require you to do so), what you need is probably the ability to search for the best API as far as your code is concerned. You have to know exactly what the specific API does eventhough the implementation of the API can totally hidden from you.
In some cases, you must choose the better one if there are more than one API do the same thing you expect. How do we achieve that? By studying the API documentation.
Then, design your code in OO way.
This seems not only neccessary when you are doing Java but any OO languages such as C++, c# and so on and so forth. You've probably heard of the terms like Encapsulation, Polymorphism, Inheritance as well as Extensibility, Reusability, Maintainability and etc. Yes you've heard of them thousand times, but they can rarely be found in programmers' code. I'm unable to produce a full article on this aspect, which I can only advise: Design your code in the way of modelling real world objects before you actually start coding.
Lastly, apply design patterns or best practices.
Assuming you are good in OO design, and you understand every single API, how could you code even better? Try applying proven design patterns and best practices. Those patterns and practices are invented based on huge amount of development experiences. Should we build the solution from scratch while there are solutions on common problem context?
Besides time saving, best practices usually can make you program runs more effectively.