Study the theory, read through other people's code and write code.
Example, by reading a book on Java8 Lambdas, you'll understand it inside out and using it becomes natural, same with Generics, concurrency, Stteams, etc.
By reading other people's code, you also see how other people use Java to solve problems and you'll learn from it - Github is a good place to find high quality source code.
Write as much code as you can each day and most things will start to feel natural; I hardly look at docs anymore since I've used the same libraries so many times