I really want to learn Java but I have no idea how to study it. I just keep reading the books yet have no idea how to program. :(

Learning to code takes practise, you won't learn just by reading a book.
Find a book that is for beginners e.g. https://it-ebooks.info/book/4941/ and work along. Download an IDE like netBeans or eclipse and try some very basic examples and work from there.
You'll want to start off with either a book or online tutorial that explains writing the code, how to compile and then execute your project.
Once you can write a simple project that runs without errors you can look into different data structures and basic methods, adding them into your basic project.
Just take little steps for a while and you'll start to get a grasp of it.

IMO it's not really a good recommendation.
First of all, don't look for a book that's "for beginners". Look for a book that decently teaches and explains the material, so it can be used by both beginners and more advanced developers. A lot of books and tutorials out there that are "easy for beginners", are crap. The way they make it easy, is by omitting a lot of quite important stuff you really should know, if you truly want to understand what you are doing, instead of just learning to copy code from a book.

Every good book comes with (related) topics bundled in chapters, with examples both in code and explanation, and has exercices at the end of the chapters. Go through it from chapter one. Don't assume you'll be learning faster if you decide to 'skip those boring first chapters', they are basically the foundation you have to build on.

Next to that: if you are just beginning, do NOT download an IDE. Use notepad, or Notepad++ (or at the best a lightweight IDE). Don't start off with an IDE that does a lot of work for you. It can speed up your work, sure, but unless you know what the IDE is doing behind the screens, it might work against you.

(At the very least) the first few chapters of your book, manually code, compile and run your code, using a simple text editor and the command prompt. Try using several DataTypes (not just primitive types), study any error messages you get, and when you get them:

    • when does the exception occur? compile time or run time?

    • what does the error message say?

    • what does the stacktrace say?
      and, most importantly:

*** - how can I use the answers to the above questions to resolve my issue?**

Learn yourself to check what methods can be used, by checking the Java api before you blindly trust on the auto complete of an IDE to do all the work for you. Keep in mind, an IDE is a software, it can not think, and quite often, the autocomplete puts something very different compared to what you actually wanted.

In the end, be aware of the impact of an IDE on your learning process: sure, they do a lot of work for you, but what you have to do, is learn to program, not learn to use an IDE. I can assure you, there's nothing as sad as a 'Senior Java Swing developer' who can't manage to create a quite simple Swing GUI because his new employer doesn't allow the use of NetBeans and it's wysiwyg-editor (true story).

EDIT: Don't expect to learn how to program over night. Learning the very basics will occupy something like a year. Don't be alarmed if it takes a while, it doesn't mean you're lousy at it, it just means there's a lot to learn and to get accustomed to.

commented: Very good advice +15


I have given few online tutorial links for learning Java online..These tutorials are easier to learn Java online..
Java Programming
Java by Oracle

The first link points to very limited, and no doubt out of date information.

Best learning for programming w3schools.

At First Glance of reading this posters question i thought just a Troll, but hey i'll give my two cent's , " I just keep reading the books yet have no idea how to program. :(" , as well you can ready the drivers manual to get you licence but until you get into a "CAR" you will never learn how to actually drive !!!! this is really a common sense question , "internet" Youtube.com, ("Java Programming") , Search Engines " Learning Java" , Lack of total common sense in this posters question really..