I have moderate experience with java (did a intro to AI class in school and all the practical work was in java) but I only picked up the language in that class (which wasn't a class intended to teach the language). I'd like a textbook recommendation for getting a more formal introduction to the language and I enjoyed the C programming language text. Wondering what the HN community considers the equivalent for java
This is a really interesting question - the main problem with identifying a single book is that while Java core syntax is relatively terse (you can for example check out Precisely Java for an example: <a href="https://web-beta.archive.org/web/20110810052030/http://www.dina.kvl.dk/~sestoft/javaprecisely/" rel="nofollow">https://web-beta.archive.org/web/20110810052030/http://www.d...</a>) the language delivers only through massive usage of the standard libraries.
And this really makes it a completely different beast from C - a gap that kept growing at each subsequent version of Java (you may notice that Java Precisely hasn't been updated after Java 5, btw).<p>Personally if I had to get back into Java today I would start by exploring <i>Introduction to Programming in Java: An Interdisciplinary Approach</i> by Robert Sedgewick & Kevin Wayne.
The 2nd Edition has just been published (early April 2017) - but take in account that I am suggesting this basing myself exclusively on the reputation of the authors, and I haven't read it.
In a literary sense, there is probably not a Java equivalent to <i>The C Programming Language</i> because it was written at a time when the primary way of telling people about new programming languages was dead tree books and the primary way of distributing new programming languages was magnetic tape. By the time Java was created, network connections and CDROM's were standard. Also Java was a commercial product backed by for profit training and workshops and support.<p>Anyway, the formal introduction to Java is the specification produced via Java's consensus process. It's all there. Everything. If it isn't there, it's a bug.<p><a href="https://docs.oracle.com/javase/specs/jls/se8/html/index.html" rel="nofollow">https://docs.oracle.com/javase/specs/jls/se8/html/index.html</a><p>Good luck.