The Best way to learn Java is to create a Java Project and create own examples.
From the theory side, just understand the concepts, but to understand a concept in detail, create a sample example to implement the concepts learnt. For Example, if you are reading Interfaces then start your IDE and write down one example using Java Interface.
Implementation helps a lot in understanding.
Start from writing small programms to understand the concepts like Classes, Objects, Inheritance, Polymorphsm, Encapsulation, Operators, Loops etc and then go for complex implemntations like Strings, Arrays, Threads, Collections etc.