To learn any programming language one must practice. It is the only way to become master in any particular language.
There are many sites for Java practice depending upon your expertise. There are some suggestions below.
For Experts:
- Hacker Rank
- Code Chef
- Coding Bat
For Beginners:
But if you want to start from beginning then I would recommend you to Merit Campus. There are various topics which you can read online. They also have good practice tests which will help you become expert in the field. There online compiler helps in checking the programs immediately with out having to install JDK on your machine or PC.
Java Topics:
http://java.meritcampus.com/java-tests?tc=mm32
Online Compiler:
http://java.meritcampus.com/java_compiler/run?tc=mm31
Also, expert training is provided by this site where experts will give online coaching to students.
Expert Training:
http://java.meritcampus.com/expert-java-training?tc=mm30

