Thinking in Java

ClanBrandon Books
view more info on this item
click here for more details, find new or used items

Bruce Eckel

Our price £27.94 (£42.99)
New from £27.94
Used from £29.00

Pages: 1150 (Paperback)

ISBN: 0131872486

Pub: Prentice Hall

Pub date: 2006-03-02

Amazon.co.uk Sales Rank: 8924

Check for 3rd party sellers (new/used)

Editorial Review:


Programming languages have similarities with general purpose languages such as Spanish. You might know enough Spanish to cobble together a simple letter or read a poster but the real breakthrough comes when you can think in it. Thinking in Java attempts to improve your understanding to the point where you can think about a programming problem in Java rather than in English or whatever and then translate it. This fits extremely well with the basic Java ethos, which is to enable you to frame a problem in terms of the Java objects you'll use to provide a solution.

Eckel approaches teaching you to think in Java by introducing a topic, talking around it to put it in context, providing examples to try and then discussing them in depth. Each chapter has a summary followed by exercises. The book is structured for someone coming from a procedural language background. Eckel spends a lot of time on OOP concepts in general and the way in which it's implemented in Java. After covering operators Eckel goes on to program flow, initialisation and garbage collection, packages, class reuse, polymorphism and so on all the way up to distributed programming (servlets) and appendices on passing objects, the JNI, guidelines and resources. The whole book is also on CD (in several formats including HTML) with the source code (guaranteed to compile under Linux using Java 1.2.2). The CD also contains Thinking in C: Foundations for C++and Java.

Thinking In Java is basically a tutorial. You're intended to read it linearly and work the exercises. It helps that it's well written but it helps even more to have a programming background. If not, you'll probably want a straight Java reference to hand as well. --Steve Patient

Reader Reviews:


3/5 stars

A love-hate relationship (1/1 people found this helpful)

When you learn to program you should try and answer your problems against the compiler. Write small little programs that test your thesis. That's how you remember and that's such a brilliant way of getting to know the language. Bruce Eckel has done the same thing. Unfortunately he has filled his 1500 page book with these small little programs. They are terse and take FOR-EVAR to read through and follow, often only to prove a corner case features of the language.

Now don't get me wrong; reading TIJ cover to cover WILL make you a good junior programmer, but seriously evaluate how much time you have on your hands or this book could unfortunately end up only partly read on your bookshelf. It takes a year to read if you are starting from ground zero and you WILL find yourself swearing at Bruce Eckel's convoluted chapters time and time again.

Overall the structure of TIJ is good in terms of what it covers etc (look forward to 200 pages on parallel programming for instance), but you tend to get lost in all the pages. You're on page 690 with another 600 to go, full of small programs that prove less essential aspects of the language. You get lost in all the pages. The program examples are hard to skim through to get an overview when you don't know the subject area and you are forced to read it all as a tutorial. This is where I think TIJ fails the beginner.

Another personality trait of TIJ is it's offset in C/C++. While sort of relevant enough, it still shows it age. Im sure the C-to-Java move was prevalent around the time Bruce wrote the 1st edition, but in 2008 i doubt that's where most of the java-learning audience are coming from.

I have spent a lot of time with this book and certainly have developed a love-hate relationship with it. While it probably is the most thorough introduction to the language, it probably also is a lot more than you'd wanna ask for. That's why I don't recommend TIJ as your first Java book. Albeit it's good parts it is still too much of a braindump. It takes too long to work through it, and I don't think the time spend pays off on a adequate scale. There is a limit to how many hours there is in the day, no matter how keen a beginning programmer you are. There are other books that take a more pedagogical approach to learning the Language. Kathy Sierra's books come to mind.

My recommended path is to start with Head First Java, then either TIJ or otherwise Kathy Sierra's SCJP book, that one really gets into the nitty gritty in an time-efficient manner - In fact TIJ and SCJP have complemented each other nicely. I've read the SCJP chapter on a subject first, then gone back to TIJ and worked through it more carefully.

5/5 stars

Crystal clear (2/2 people found this helpful)

If you are already an experienced software engineer, but have no formal knowledge of proper object-oriented languages (or know only C and/or C++), this is the best book I know of to learn JAVA. Eckel dispels the mysteries of all the OO jargon, and the examples he gives are presented at a manageable pace - just right to keep you interested enough to wonder 'what happens next'. I would recommend that readers also buy the slightly more 'reference-y' "JAVA in a Nutshell" by David Flanagan, which covers the syntax from a more traditional angle and has the J2SE API. If it is J2ME you are interested in, you will also need "J2ME in a Nutshell" by Kim Topley; Eckel's book is a thorough treatment of the philosophy and practice of JAVA but has no API sections. It's also very neatly laid out, with decent sized text for all us 'round-the-clock' programmers!

4/5 stars

Comprehensive and great coverage of Java 5.0 features (11/11 people found this helpful)

I will preface my comments by saying that this is not a suitable book for those seeking to learn Java. Java novices should seek out Head First Java, and follow up with the excellent Agile Java. You are then ready to take on this book.

Widely regarded as one of the best books on Java, the 4th edition of Thinking in Java, covering Java 5.0, was a long time coming. It was well worth the wait, however.

Admittedly, it starts slowly. The first couple of hundred pages are somewhat uninspired (10 pages devoted to a program that exhaustively evaluates operations on all primitives, for example), but it picks up. And when it hits its stride it is comprehensive.

Traditionally tricky areas of Java like the I/O classes and inner classes are well-covered, and the coverage of the new features in Java 5.0 are second to none, in particular annotations and generics, the latter going well beyond their use for type-safe containers, and actually making self-bounded types understandable. Nearly two hundred pages are devoted to the new threading and concurrency classes. If you really want to know what's going on with these core classes, this is the go-to book.

The coverage of Swing is uninspiring, particularly as apart from a smattering of pseudo-UML class diagrams, there is only one illustration in the entire book (and it's 1400 pages long) - a picture of a Flash component, and it's a text box! However, there are plenty of other books out there that cover Swing in depth, so it's easy to overlook this. Personally, I didn't see the need for the introduction to Flash in a Java book, although the discussion of the SWT classes was useful.

The other downside to the book is that the example code can be long. On the one hand, they have the advantage of being complete and runnable. On the other, it can be hard to spot the pertinent parts, and although the code is copiously commented, the Head First series of books have ably demonstrated the value of a more in-depth annotation, coupled more closely to the main text.

Additionally, especially early on, the code examples are often dull and abstract, with method names like f(), which obfuscate rather than clarify. Later on, however, there are several witty and imaginative examples, so I can only assume that Bruce Eckel got a bit bored trying to make bitshifting entertaining. Finally, people new to Java and without a C background, could find the early references to how things are different in Java to C and C++ unnecessarily confusing, although one is assumed to have downloaded the flash-based 'Thinking in C' e-seminar from the author's website.

These are minor disappointments, however, compared to the breadth and depth on offer here. You will need to be pretty expert at Java not to pick up any new tips on performance or idiomatic usage from the material here, and I will be using this as my first stop for reference purposes, particularly for the new Java 5.0 features.

If you do any Java programming, this is well worth your money and pretty essential.

5/5 stars

A bit more special than other JAVA tutorials (6/6 people found this helpful)

If you search for Java books on Amazon you will notice that there are hundreds of Java tutorials available, and most of them will adequately teach you how to program in Java. Thinking in JAVA stands head and shoulders above the rest because it explains the why as well as the how . Once you understand why Java is structured like it is then you will have the edge over most other coders.

Note: Although this book can be used as a reference guide, there are other books that are better suited to a quick dip style of reading; e.g. JAVA in a nutshell.

5/5 stars

A great book, but... (7/7 people found this helpful)

It judging this book, it is important to understand what this book is, and what it is not.
Firstly, it is not an introduction to programming. I would reccommend that you are reasonably proficient in at least one other language before reading this book.
Secondly, it does exactly what the title suggests: It leads you to think in Java - it does not give interesting or useful programs as examples - simply code which demonstrates (well) the concept being explained.
Thirdly, it does not so much cover the practicalities of Java as the theory behind it. This book really requires the Sun Java Reference documentation to be used by the reader.
So, understanding this, withing this context it is an excellent book. By the time you're finished, you will have a rock-solid base on which to build your Java knowledge.

Similar Products

Effective Java

Head First Design P (Head First)

Head First Java (Head First)

Java Concurrency in Practice

Java in a Nutshell (In a Nutshell (O'Reilly))

Categories

Amazon.co.uk places this book into the following categories:

Books -> Subjects -> Computing & Internet -> General
Books -> Subjects -> Computing & Internet -> Digital Lifestyle -> Online Shopping -> Amazon
Books -> Subjects -> Computing & Internet -> General AAS
Books -> Subjects -> Computing & Internet -> Programming -> General AAS
Books -> Subjects -> Computing & Internet -> Programming -> Languages -> Java -> General AAS
Books -> Subjects -> Computing & Internet -> Software & Graphics -> General AAS
Books -> Special Features -> Regular Stores -> Books for Study Special Offers
Books -> Refinements -> Language (feature_browse-bin) -> English
Books -> Refinements -> Age (feature_two_browse-bin)
Books -> Refinements -> Format (binding_browse-bin) -> Paperback
Books -> Refinements -> Condition (condition-type)

 

ClanBrandon Books | Prague airport transfer | Dreamweaver | Short Term Missions | English Teacher Jobs in the Czech Republic
Czech Republic | Operation Mobilisation | Czech Republic Map