ŷ

Jump to ratings and reviews
Rate this book

Thinking in Java

Rate this book
Thinking in Java is a printed version of Bruce Eckel's online materials that provides a useful perspective on mastering Java for those with previous programming experience. The author's take on the essence of Java as a new programming language and the thorough introduction to Java's features make this a worthwhile tutorial.

Thinking in Java begins a little esoterically, with the author's reflections on why Java is new and better. (This book's choice of font for chapter headings is remarkably hard on the eyes.) The author outlines his thoughts on why Java will make you a better programmer, without all the complexity. The book is better when he presents actual language features. There's a tutorial to basic Java types, keywords, and operators. The guide includes extensive source code that is sometimes daunting (as with the author's sample code for all the Java operators in one listing.) As such, this text will be most useful for the experienced developer.

The text then moves on to class design issues, when to use inheritance and composition, and related topics of information hiding and polymorphism. (The treatment of inner classes and scoping will likely seem a bit overdone for most readers.) The chapter on Java collection classes for both Java Developer's Kit (JDK) 1.1 and the new classes, such as sets, lists, and maps, are much better. There's material in this chapter that you are unlikely to find anywhere else.

Chapters on exception handling and programming with type information are also worthwhile, as are the chapters on the new Swing interface classes and network programming. Although it adopts somewhat of a mixed-bag approach, Thinking in Java contains some excellent material for the object-oriented developer who wants to see what all the fuss is about with Java.

1401 pages, Paperback

First published February 19, 1998

247 people are currently reading
2343 people want to read

About the author

Bruce Eckel

36books58followers
Bruce Eckel is a computer programmer, author, and consultant.
Eckel's best known works are Thinking in Java and the two-volume series Thinking in C++, aimed at programmers wanting to learn the Java or C++ programming languages, respectively, particularly those with little experience of object-oriented programming.
Eckel was a founding member of the ANSI/ISO C++ standard committee.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
973 (43%)
4 stars
769 (34%)
3 stars
346 (15%)
2 stars
93 (4%)
1 star
35 (1%)
Displaying 1 - 30 of 86 reviews
Profile Image for Zach.
3 reviews1 follower
March 15, 2015
Bruce's approach to teaching the Java fundamentals is refreshingly different from most Learn Java books. I have been working with Java for three years, starting with college courses and the very basic Teach Yourself Java books. Most books simply go into syntax and fundamentals from a 'how-to' approach. 'Thinking in Java' is more concerned with explaining the Java language's design and behavior, and how the current topic fits in with Object Oriented Programming. I found myself having constant, "OH!" moments where something I'd been doing out of learned habit suddenly made sense from a broader approach.

Pros: Incredibly thorough, if you work your way through it you really develop a better understanding for Java and OOP, filled with exercises and recommended reading.

Cons: Definitely not a pure beginner book (but he addresses this in the introduction.) Most examples are written abstractly (i.e. not framed in real world problems/solutions) making the concept a little more difficult to wrap your head around.

Despite being pretty dense at times, working your way through the topics and exercises laid out in the book is a sure way to cement your foundation in Java.
Profile Image for Bokieie.
14 reviews16 followers
Read
December 27, 2019
The book is full of valuable insights and good, elaborate explanations. Well worth the read.
Profile Image for Natik.
33 reviews4 followers
March 7, 2018
This book is actually really good for a (really curious) beginner who has never seen a single line of code before. It is absolutely not a cookbook.

In school, they often present "intro to programming" classes as "how to memorize sections of funny symbols". You are basically glued to whatever programming language they use to introduce the CONCEPT of (object-oriented) programming or even computer science. This does not prepare you for problem solving in any way.

In this book, the intro chapter alone helps clear up months of previous confusion because it provides context of what is happening in the computer and more. It actually bothered to discuss the basics of the "lower levels" of your computer/ internet etc and how those interact with Java. It then actually bothers to constantly reference how all parts of your growing code are working with each other and your data. It prepares you to troubleshoot things yourself, instead of Googling some random guy's school project to copy and paste from.

Basically, this book should be renamed "Thinking in code" and not so much JAVA, even though it is 100% JAVA. Oh yeah, and the publisher should make the word "Thinking" in size 90000 font.
12 reviews2 followers
February 9, 2009
This book suffers from the same problem that many computer science books have. It seems that Eckel believes that learning a programming language should be completed on an exponential curve.

0 - basic... "This is a a variable" type stuff.
10 - this is how you make a function.
100 - you need to develop classes in this manner
1000 - when you're calling from the stack...

I know that one should have some computer science background when reading this book, however it seems to me that one should either start off at around 100, with a spot in the intro for 0 and 10, or just go a little slower...
1 review
Read
August 14, 2018
I think it is a very good book improving the java learner to further study java.
Profile Image for vladkinoman.
5 reviews
December 11, 2024
Філософія Java (Thinking in Java в оригіналі) є гарною книгою для початківців як у програмуванні на Java (Junior), так і для більш досвідчених програмістів (Middle), які намагаються досконало вивчити об'єктноорієнтоване програмування (ООП), пов'язані з ним терміни (композицію, агрегацію, делегацію) та патерни проєктування. У підручнику, окрім розгляду плюсів та мінусів ОО мови з усіх боків, різних написаних автором ідіом та корисних практичних рішень, ви знайдете багато застосувань та згадувань наступних патернів: Singleton, Factory Method, Adapter, Decorator, Facade, Proxy, Command, State, Strategy, Template Method. Рекомендую мати при собі Design Patterns від "Gang of 4" або Head First Design Patterns заради теоретичних основ, хоча б заради зручних графіків патернів.

Треба відмітити, що російська версія є стисненою версією оригіналу, в якій є понад 1000 сторінок. Ця версія дає достатні знання, коли англійська версія зупиняється на надто примітивних речах, як на главі String, або навпаки йде занадто глибоко в оповіданні, як у главі Containers in Depth. Однак, в оригіналі є окремі згадування цікавих речей, наприклад застосування патерну Visitor, та є дещо схоже на задачі в кінці параграфів.
113 reviews4 followers
July 30, 2020
I am half way through the book, so this is my preliminary judgement, it might change once I comlete the whole thing.

Pros:
- It goes into detail of what a particular concept is about, and explains the "why" behind different constructs.
- It is a well-established book, re-written several times, so the material is polished.
- Doesn't try to cover everything there is in Java, and focuses only on material which matters to programmers.

Cons:
- Super boring exercises. I started off wanting to complete the whole set, but after getting through the first several chapters just got frustrated with the whole notion that you have got to use chapter examples to complete a problem. And examples are rather artificial in my point of view. I would perhaps provide exercises, but only a few simple ones for each chapter to solidify understanding, since the book is more a reference than a textbook anyway.
- Example code is not ideal for reading, especially if you are used to IDE automatic formatting. Missing whitespaces couples with the fact that the book is black and white, makes it harder to read than necessary.
- Explanations are hit and miss. Some of them are great, some are very hard to go through. For me Inner Classes and Interfaces section was particularly challenging.

My advice for those who are thinking of reading this material:
- If you are completely new, start with another book. Author targeted mostly those with some programming experience. So find some introductory course, which gets through main concepts. Otherwise you will end up googling all the time instead of reading.
- Read examples from IDE. All the code from this book is available at github for free. Copy and paste particularly long samples into IntelliJ or Eclipse, that would make your life much easiear.
- Forget about solving problems. Pick 2 easy ones for each chapter to get your head around a concept, and move on to the next thing.
- The book will not make you proficient in Java, but it will make you understand how the language works. That's why I wrote the point above. The focus here is on understanding.

Hope this helps.
Profile Image for Deep Hathi.
1 review
April 14, 2020
Outstanding.

This book only covers till Java 5. So, many people can complain that it's a little dated. However, it teaches the language foundation so well, that post Java 5 features would be a cakewalk.

The book is thought out really well and should be read sequentially. It covers each concept in detail and provides ample examples and exercises to clear doubts. The coverage of collection, generics and concurrency is best in class.

If you are a Java programmer and want to learn the language in depth then go for this. The author has published a new book 'On Java 8', covering till Java 8. Can go for it to learn modern features also.

A must read.
Profile Image for Dmytro Chaban.
46 reviews2 followers
February 2, 2018
Really great book to refresh knowledge about java and concurrency. I was thinking that this book will just tell you about language specification e.g you have to write variable as so etc. But this book really helps you "Think" in java. A lot of examples helps to understand the problem better.
Although it can be somehow overwhelming for novices, as a book saying in the preface. This book is more suitable for people who already know the language and ready to refresh/expand their knowledge of it.
Profile Image for Anurag Misra.
1 review3 followers
June 6, 2017
Excellent read. Recommended for new comers, as well as experienced developers. This book gives an insight and perception into writing code, and working of the language no other programming reference manuals come close to. This book will help you develop your approach to design and object oriented programming.
3 reviews
March 25, 2020
An impressive exhaustive presentation of Java. In the end you'll be familiarize with all the aspects of this language(how it was at that time at least); even with topics that are more "obscure" to say, like type erasure, reflection. It was very useful for me when I was studying computer science. I'm very glad that I have stumbled upon this read(it was a long time ago).
Profile Image for Rumen Pasev.
5 reviews
June 3, 2020
The philosophy in the first 50 pages of focus on a syatematic philosophy which we might playfully call a post-Aristotelian Pythagoreanism. Done in classical dialogue format, details a substrate; forms do not exist separately from matter but exist in seed prior to manifestation; that individual consciousnesses are co-extensive with one another across the entire cosmos.
13 reviews
August 4, 2023
It was mostly ok and I learned a couple of new things too. It's nice that it has concepts that I was not familiar with. But I believe it can still be improved a little, by separating the Concurrency chapter in, maybe, another book, and also by adding more exercises with the concepts that are really used a lot in the real world.
Profile Image for Ilya.
59 reviews1 follower
July 3, 2020
Прочитал эту книгу, имея уже некоторый опыт коммерческой разработки на Java. Многое оказалось знакомым, однако всё-таки были моменты, ставшие открытием. Советую тем программистам, которые уже пишут на Джаве, но чувствуют, что в чём-то их знания недостаточно полны и систематизированы.
Profile Image for Jonathan Lovelace.
Author1 book40 followers
November 11, 2020
This would have been a better Java textbook than the ones I remember having for Java courses, but by this point the repetition of how much of an improvement Java 5 is makes the book show its age. If the book were three Java versions more recent I would most likely give it at least one more star.
Profile Image for Desiré Castellani.
14 reviews
January 11, 2021
Honestly I hoped that it would help me more than how much it did.
This introduction to java is nice to read but hard to understand.
The exercises are not easy for people who are just starting to learn this programming language.
17 reviews
October 15, 2024
I tried took a look at subsequent editions and I still prefer this one. The Java features are presented accompany by development concepts like good practices, unit testing in a natural and easy to understand way.
18 reviews1 follower
December 28, 2019
quite heavy and hard but essential for every Java Dev out there.
Not sure if it is still up to date (I've read while on the universtity) but the basic concepts and technics are immortal.
7 reviews
February 4, 2021
One of the best books if you want to learn the concepts in Java. It doesn't matter that the book is old. If you want to know how java works, read it
Profile Image for Anastasiia Skorobogatova.
66 reviews
February 8, 2024
Хороша книга для вивчення мови java. Але раджу її читати в оригіналі, бо російський переклад обрізав частину книги. Скоротив. Не знаю, як то так, але все ж, англійською краще.
Profile Image for Anca Burducea.
46 reviews9 followers
October 24, 2019
This book taught me how to think in objects, how to think in programming concepts and how to think in Java. I wish it was updated, because Eckel's writing is just great.
8 reviews3 followers
June 24, 2017
This one is definitely not for a beginner. You better have some previous knowledge about Java. Knowing C/C++ would be a plus. At least elementary knowledge.

Pros: Has some good tricks explained. Sometimes it goes into great details. Also, it presents some examples that could be quite useful in everyday tasks. Anonymous classes were clearly explained. The same goes for Exceptions.

Cons: Explanations of patterns were inconvenient. Explanations of generics were also inconvenient - not clear enough. Many times, I found Bruce to be disorganized - e.g. explanations of I/O.

And another thing: Java has marched on. Book explains Java 1.6 and it shows (e.g. missing switch statement with Strings). At the time of this writing Java 1.8 is IN. This book should follow. In that case I might consider giving it an extra star. Just maybe :)

I'm not familiar with his Thinking in C++ book, but it might be better. I'm fluent in C.
Profile Image for Ezequiel.
135 reviews
November 27, 2015
Good intro to Java, although it's a bit outdated now (the fourth edition focuses on Java 5 while the latest standard is Java 8 from 2014), but it's good to have an idea of several aspects of the language. Coming from C++ I found it entertaining and clear, the auther often makes a parallel between both languages. I'll try to compensate by reading next.

I didn't go through the last chapter as I've heard that there's a new way of implementing a user interface, and also I'm not interested in that feature right now.
Profile Image for Vladimir Ryashentsev.
22 reviews3 followers
November 16, 2016
Книжка очень объемная. Помимо того что написано в оглавлении, автор делает два шага влево и спиралью исследует все вокруг. Эффективнее было бы разделить ее на 3 книги:
- то что указано в содержании;
- методики программирования;
- прочее не указанное в содержании, но содержащееся в книге.

Еще из минусов - встречается плохо читаемый код, не очень хороший пример для начинающих программистов.

Плюс здесь в основном в обхвате тем. Прочитав эту книгу будешь знать шаблоны, потоки, ввод/вывод... и много других страшных слов.
Displaying 1 - 30 of 86 reviews

Can't find what you're looking for?

Get help and learn more about the design.