"public static void main (String args[])" - that would put anyone off, and for good reason, it's total bollocks. Either "main" is special or it's not, if it is why tell java stuff it already knows. If the jvm wants to run something that's public and called main and has a method signature of string array then why not dispense with all the nonsense - the answer's simple - it's java - the most verbose boiler-plate laden language out there designed for groups of mediocre developers. Despite needing dozens of lines to even basic stuff, it forces people into some form of homogeneity to keep teams of "java certified" developers in jobs.
if you want to learn to program, open Terminal, type ipython and go from there. When lost google stackoverflow, repeat. Forget books, there are way better, more up to date online resources.