
|
Bruce Eckel);
it is created and maintained by
marc.meurrens@acm.org
(
http://homepages.ulb.ac.be/~meurrens)
http://www.EckelObjects.com/javabook.html
by
Bruce Eckel:
Bruce@EckelObjects.com
or
Eckel@aol.com.
In this (revisited) mirror page, we also include a description of the book's chapters mirrored from
http://www.EckelObjects.com/java.html
and an important errata note.
http://www.ulb.ac.be/esp/ip-Links/Java/joodcs/index.html
[back]
"Thinking in Java"
(by
Bruce Eckel)
http://www.EckelObjects.com/javabook.html
where you can download this free book in Acrobat
(
www.adobe.com)
PDF format:
Thinking in Java Rev. 9, August 16, 1997 TJAVA9.PDF (2678 kb).
Downloading the PDF file from the original site is quite difficult.
The
TJAVA9.PDF Acrobat file,
the
tjava9W95.zip file (1557 kb --> a 4349 kb WORD file),
the CodePackager
tj9code.zip
(122 kb --> 3 files, 1070 kb)
and the
CodePackager java source
are mirrored on our site. A detailled description of all
chapters and an important
errata note are also available.
This book has been written by Bruce Eckel
(
Bruce@EckelObjects.com),
also author of
"Thinking in
C++".
werner.ramaekers@ping.be
(or
wra@bejug.org)
and
yves.callewaert@ficsgrp.com (
BeJUG voting members).
A list of approx. 363 "pre-prepared" links to this page
is available at URL
http://www.ulb.ac.be/esp/ip-Links/Java/joodcs/eckel-LinksTo.html.
These links are (or will be) used in other pages related to "OO design and Coding Standards".
here.
For automatic notification when the book is revised, when it is printed and when the CD Rom becomes available,
add yourself to the Java mailing list or fill the form below.
(Material added in Chapter 1 and Chapter 15, many corrections made, tested with JDK 1.1.3. Also recovered "lost lines of code" caused by Adobe Acrobat). I think I may have actually finished adding the bulk of the material (not including corrections and fixes, of course). This kind of thinking is generally an illusion, but at least I'm to the point where that illusion is beginning to arise.
http://www.EckelObjects.com/anyFile.html
(replacing old URL's such as
http://www.EckelObjects.com/eckel/anyFile.htm
)
default.htm , MacOS.htm replaced by index.html , macos.html
add new readers comments.
I think I may have actually finished adding the bulk of the
material. This kind of thinking is generally an illusion, but
at least I'm to the point where that illusion is beginning to arise."
(... ...)
(previous revision was: Revision 7, June 5, 1997)
werner.ramaekers@ping.be
(or
wra@bejug.org)
and
yves.callewaert@ficsgrp.com (
BeJUG voting members).
here.
add yourself to the Java mailing list or fill the form below.
This is the book Thinking in Java in Adobe Acrobat (
www.adobe.com) format. If you have Acrobat installed properly, the fonts and layout will be similar to the way it will appear when published and bound (I've adjusted the borders to make it cheaper to print, however). The entire book will appear here as it is completed, and will continue to be available in electronic form even after the book is physically printed. Any updates and corrections will appear in the electronic book.
The electronic version of the book will continue to be free. You have permission to print a copy of the book for your own use.
If you like the book, please:
hands-on Java seminars
Much of the change with the revision 8 involves Java 1.1. New sections and projects have been added, and significant portions have been rewritten (For example, the design patterns chapter has been rewritten significantly). Please let me know if you discover discrepancies, particularly places where I've used a concept before it was introduced.
I will be publishing it in Adobe Acrobat (
www.adobe.com) from now on. Although it's big, it seems much easier to read electronically, as it looks virtually identical to the way the book will appear in print, so if you want to print it you'll get all the proper fonts and formatting.
Sometimes I get messages saying people are having trouble downloading the book. This is invariably because of network problems, and eventually I hear back that they've been able to download it. Especially if you're downloading it from overseas, try connecting when everyone's asleep in your country; that often works. Keep trying...
First let me apologize: there's no index yet which is what I was promising for this revision. But so many folks sent in such good suggestions and corrections that I spent all my time with those (in addition I've been updating and recording lessons for the CD Rom, which continues and which I'm quite pleased with). I've got to say that putting the book up on the Web has made this the best publishing experience I've had (and the same thing will happen with the 2nd editon of "Thinking in C++" which will begin when this book is published).
I think you'll find that the corrections and new material is worth not having an index (which I really do plan to focus on for the next revision). Significant changes include:
As the book gets closer to publication, one thing that would be very useful is exercises – these are always hard for me to come up with so any suggestions will be appreciated. Also please continue sending the same sorts of corrections and suggestions you've been sending; although I can't promise to make all the changes I carefully consider each one since these are what have been the source of great improvements in the book.
Errata & addendaNobody is perfect.
While you are waiting for revision 10, please have a carefull look at the IMyConsts
sample interface where the use of public constants is illustrated.
here.)
I assumed that most people were reading it online, but surveys have found that most people seem to be printing it. Because of this, I've reformatted the book so that it requires less paper and is cheaper for you to print. This will not be how the published version looks - the paper size and formatting will be different. If you report errors, be sure to include some fragment of the text around it and I'll just search for that. If you find yourself going through and marking a lot of your pages, feel free to send the marked-up pages to:
Bruce Eckel
20 Sunnyside Ave, Suite A129
Mill Valley, CA 94941
Thanks!
In the U.S., the Chicagoland Java User Group (CJUG) maintains a mirror at
http://www.cjug.org/download/javabook.html.
Overseas locations often have trouble downloading the book. In Europe, the
Belgian User's group has a mirror site at:
http://www.ulb.ac.be/esp/ip-Links/Java/joodcs/EckelJavaBook.html
(the page you are reading now!)
In France, there's a mirror at:
http://www.mygale.org/~guessant/java/eckel/index.html
At a second mirror site in France the files are available for ftp via a 4Mb/s connection at:
ftp://ftp.imag.fr/archive/multimedia/doc/tjava9.pdf
ftp://ftp.imag.fr/archive/multimedia/doc/tj9code.zip
In Iceland, contact our colleague
Snorri Agnarsson
or visit his home page at

http://www.hi.is/~snorri or
http://www.hi.is/~snorri/097111-97 (if you understand the old nordic)
If you wish to set up a mirror site please inform me so that I can place your URL here.
Use the form located at the end of this page or e_mail
Bruce@EckelObjects.com
Bruce Eckel
20 Sunnyside Ave, Suite A129
Mill Valley, CA 94941
http://www.EckelObjects.com/Tjava9.pdf ;
Tjava9.pdf Acrobat file is mirrored on our site (in Brussels, Belgium).
While you are downloading the file (either from the original source, from our mirror or from another mirror), please, send us your e_mail (using the small form below) so that we are able to notify revisions, etc. Also, we need your feedback to support and improve our (non-profit) initiatives.
(NOTE: If you already have Adobe Acrobat installed, you'll probably need to right-click (or your equivalent) on this link to download the file rather than just normally clicking on it, since otherwise Acrobat will probably try to read it inside your web browser).
If you have Acrobat installed properly, the fonts and layout will be similar to the way it will appear when published and bound (I've adjusted the borders to make it cheaper to print, however). The entire book will appear here as it is completed, and will continue to be available in electronic form even after the book is physically printed. Any updates and corrections will appear in the electronic book.
MacOS Installation page.
Download the free Acrobat reader from
www.adobe.com
or, in Europe, try the ftp site (guidelines are in french)
ftp://ftp.univ-lille1.fr/pub/adobe/acrobatreader/ (several platforms available).
If you have trouble downloading the PDF file, it has been broken up into separate pieces here (You cannot read the individual pieces with acrobat! You must combine them as subsequently described before trying to read them with acrobat!). Download each file:
TJAVA9PDF.01 (200 Kb) mirrored here
t901
TJAVA9PDF.02 (200 Kb) mirrored here
t902
TJAVA9PDF.03 (200 Kb) mirrored here
t903
TJAVA9PDF.04 (200 Kb) mirrored here
t904
TJAVA9PDF.05 (200 Kb) mirrored here
t905
TJAVA9PDF.06 (200 Kb) mirrored here
t906
TJAVA9PDF.07 (200 Kb) mirrored here
t907
TJAVA9PDF.08 (200 Kb) mirrored here
t908
TJAVA9PDF.09 (200 Kb) mirrored here
t909
TJAVA9PDF.10 (200 Kb) mirrored here
t910
TJAVA9PDF.11 (200 Kb) mirrored here
t911
TJAVA9PDF.12 (200 Kb) mirrored here
t912
TJAVA9PDF.13 (200 Kb) mirrored here
t913
TJAVA9PDF.14 (200 Kb)
mirrored here
t914
TJAVA9PDF.15 (78 Kb)
mirrored here
t915
copy /b tjava9pdf.01+tjava9pdf.02+tjava9pdf.03+tjava9pdf.04+tjava9pdf.05+tjava9pdf.06+tjava9pdf.07+tjava9pdf.08+tjava9pdf.09+tjava9pdf.10+tjava9pdf.11+tjava9pdf.12+tjava9pdf.13+tjava9pdf.14+tjava9pdf.15 tjava9.pdf
In Unix, you can say:
cat tjava9pdf.* > Tjava9.pdf
If you're curious, here's the C++ source code for the tool that did the job:
BREAKUP.CPP
The book is now available in RTF which should work on many platforms and may make it easier for you to use.
Download Version 9 in zipped RTF format
The book is now available in Word97 format for Windows machines. If you don't have Word97, you can download a free viewer for either Windows 3.1 or Win95/NT at
http://www.microsoft.com/word.
This version is easier to navigate (you can, for example, click on the page numbers in the table of contents to move to that page, and doing finds is faster and easier than in acrobat). Also you may have an easier time printing it.
One of the reasons for providing this is for the technical readers, to make it easier for them to find and report errors. Because of this, I may be placing interim versions up in Word97/Word95 only. The acrobat version will only reflect the major revisions since that is much more difficult.
This is exactly the document that I'm working on, without any modifications.
Download the August 18, 1997 version in zipped Word97 format
The book is now available in Word95/Word 6.0 format, if you have those versions (this includes the Macintosh), for similar reasons as the Word97 format.
Download the August 18, 1997 version in zipped Word95/Word 6.0 format
mirrored here:
tjava9W95.zip
(1557 bk --> tjava9W95.doc 4349 kb)
Differences between versions
This is a relatively crude "diff" of the text between version 7 and 8, but you may find it useful.
EckelDiffs.txt
your favorite diff program to see the differences yourself.
Download the text source for both versions for comparison (diffsrc9.zip, 918K)
mirrored
here
As you'll discover in Chapter 17, I've created a program to extract the code and package it into an archive. This same program is used to unpack it, using Java library routines that understand your local system's directory structure as well as the end-of-line terminators. Thus, it should unpack properly onto any machine where the Java libraries are properly implemented. The file itself is in Java's "generic" text format so even if you have trouble on a particular machine you may be able to modify the CodePackager.java program to compensate (as a last resort, you can pull pieces of text out of the file by hand).
Steps for installing source code on your machine:
tj9code.zip
mirrored on our site
tj9code.zip (122 kb --> 3 files, 1070 kb)
(also mirrored:
CodePackager.java)
CodePackager.java (or unzip it from
tj9code.zip).
MacOS Installation page.This is a new experiment and so there may be glitches at first. If you have problems, let me know at Bruce@EckelObjects.com, especially if you can tell me the solution for a particular platform.
This is a program written in C++ that moves through all the directories and compiles all the Java programs, one at a time, in each directory (by compiling them one at a time you can avoid conflicts that sometimes arise). This is the uncompressed executable
jc_all.exe. The source code
jc_all.cpp is written and compiled with Borland C++ (you can download a demo version at
www.Borland.com) and it uses Borland's directory listing libraries; if you want to re-compile it with Microsoft C++ you'll have to make some changes to the source code.
I hope to have a printed version of the book available in September. My literary agent (
cmoore@moorelit.com) is currently talking to publishers.
Add yourself to the
Java mailing list if you'd like to be notified when the book is printed. Or send an e_mail to (
Bruce@EckelObjects.com).
Or use the form below.
The full table of content of the book is available
here.
A list of approx. 363 "pre-prepared" links to this page
is available at URL
http://www.ulb.ac.be/esp/ip-Links/Java/joodcs/eckel-LinksTo.html.
These links are (or will be) used in
other pages related to "OO design and Coding Standards".
http://www.EckelObjects.com/java.html
Chapter 1: Introduction to Objects
|
Chapter 2: Everything is an Object
|
Chapter 3: Controlling Program Flow
|
Chapter 4: Initialization & Cleanup
|
Chapter 5: Hiding The Implementation
|
Chapter 6: Reusing Classes
|
Chapter 7: Polymorphism
|
Chapter 8: Holding Your Objects
|
Chapter 9: Error Handling With Exceptions
|
Chapter 10: The Java IO System
|
Chapter 11: Run-Time Type Identification
|
Chapter 12: Passing & Returning Objects
|
Chapter 13: Creating Windows and Applets
|
Chapter 14: Multiple Threads
|
Chapter 15: Network Programming
|
Chapter 16: Design patterns
|
Chapter 17: Projects
|
This is the best book on Java that I have ever found! You have done a great job. Your depth is amazing. I will be purchasing the book when it is published. I have been learning Java since October 96. I have read a few books, and consider yours a "MUST READ." These past few months we have been focused on a product written entirely in Java. Your book has helped solidify topics I was shaky on and has expanded my knowledge base. I have even used some of your explainations as information in interviewing contractors to help our team. I have found how much Java knowledge they have by asking them about things I have learned from reading your book. (e.g. the difference between arrays and Vectors) Your book is great! Steve Wilkinson, Sr. Staff Specialist, MCI Telecomunications
Thank you for "Thinking In Java." It's time someone went beyond mere language description to a thoughtful, penetrating analytic tutorial which doesn't kowtow to The Manufacturers. I've read almost all the others--only yours and Patrick Winston's have found a place in my heart. I'm already recommending it to customers. Thanks again. - Richard Brooks, Java Consultant, Sun Professional Services, Dallas
Other books cover the WHAT of java (describing the syntax and the libraries) or the HOW of java (practical programming examples). Thinking in Java is the only book I know that explains the WHY of java, why it was designed the way it was, why it works the way it does, why it sometimes doesn't work, why it's better than C++, why it's not. Although it also does a good job of teaching the what and how of the language, Thinking in Java is definitely the thinking person's choice in a java book. - Robert S. Stephenson
I just want to commend you for your work on "Thinking in Java." It is people like yourself that dignify the future of the Internet and I just wanted to thank you for your effort. It is very much appreciated. - Patrick Barrell, Network Officer Mamco-QAF Mfg. Inc.
Most of the Java books out there are fine for a start, and most just have beginning stuff and a lot of the same exact examples. Yours is by far the best advanced thinking book I've seen. Please publish it soon! ... I also bought "Thinking in C++" just because I was so impressed with "Thinking in Java". - George Laframboise, LightWorx Technology Consulting, Inc.
I wrote to you earlier about my favorable impressions regarding your Thinking in C++ (a book that stands prominently on my shelf here at work). And today I've been able to delve into Java with your e-book in my virtual hand, and I must say (in my best Chevy Chase from Modern Problems) I like it! Very informative and explanatory, without reading like a dry text book. You cover the most important yet the least covered concepts of Java development - the whys. Sean Brady.
I've read the first two chapters of TJAVA and I like it a lot. Thanks for writing a great book. The more I read it the better I like it. My students like it, too. Chuck Iverson
Great Book. Best book on Java I have seen so far. Jeff Sinclair, Software Engineer, Kestral Computing.
Your examples are clear and easy to understand. You took care of many important details of Java, that can't be found easily in the "weak" Java documentation. And you don't waste the reader's time with the basic facts a programmer already knows about. Kai Engert, Innovative Software Germany
I'm a great fan of your "Thinking in C++" and have recommended it to associates. As I go through the electronic version of your Java book, I'm finding that you've retained the same high level of writing. Thank you! Peter R. Neuwald
VERY well-written Java book ... think you've done a GREAT job on it. As the leader of a Chicago-area Java special interest group, I've favorably mentioned your book and website several times at our recent meetings. I would like to use "Thinking in Java" as the basis for a part of each monthly SIG meeting, where we review and discuss each chapter in succession. Mark Ertes
I really appreciate your work and your book is good. I recommend it here to our users and Ph.D. Students. Hugues Leroy // Irisa-Inria Rennes France, Head of Scientific computing and industrial tranfert
OK, I've only read about 40 pages of Thinking in Java -- but I've already found it the most clearly-written and presented programming book I've come across ... and I'm a writer, myself, so am probably a little critical. I have Thinking in C++ on order and can't wait to crack it -- I'm fairly new to programming and am hitting learning curves head-on, everywhere. So this is just a quick note to say thanks for your excellent work. I had begun to burn a little low on enthusiasm from slogging through the mucky, murky prose of most computer books -- even ones that came with glowing recommendations. I feel a whole lot better now. Glenn Becker Educational Theatre Association
Thank you for making your wonderful book available. I have found immensely useful in finally understanding what I experienced as confusing in Java and in C++. Reading your book has been very satisfying. Felix Bizaoui, Twin Oaks Industries, Louisa VA
I must congratulate you on an excellent book. I decided to have a look at Thinking in Java based on my experience with Thinking in C++, and I was not disappointed. Jaco van der Merwe, Software Specialist, DataFusion Systems Ltd, Stellenbosch, South Africa
This has to be one of the best Java books I've seen. E.F.Pritchard, Senior Software Engineer, Cambridge Animation Systems Ltd., UK.
... your book makes all the other Java books I've read or flipped through seem doubly useless and insulting. Brett g Porter, Senior Programmer, Art & Logic
I have been reading your book for a week or two and compared to the books I have read earlier on Java, your book seems to have given me a great start. I have recommended this book to lot of my friends and they have rated it Excellent. Please accept my congratulations for coming out with an excellent book.Rama Krishna Bhupathi, Software Engineer, TCSI Corporation, San Jose
Just wanted to say what a "brilliant" piece of work your book is. I've been using it as a major reference for the in-house Java work. I find that the table of contents is just right for quickly locating the section that is required. It's also nice to see a book which is not just a rehash of the API nor treats the programmer like a dummy. Grant Sayer, Java Components Group Leader, Ceedata Systems Pty Ltd, Australia
Wow! A readable, in-depth Java book. There are a lot of poor (and admittedly a couple of good) Java books out there but from what I've seen yours is definitely one of the best. John Root, Web Developer, Department of Social Security, London
Thank you again for your awesome book. I was really floundering (being a non-C programmer), but your book has brought me up to speed as fast as I could read it. It's really cool to be able to understand the underlying principles and concepts from the start, rather than having to try to build that conceptual model through trial and error. Hopefully I will be able to attend your seminar in the not-too-distant future. Randall R. Hawley, Automation Technician, Eli Lilly & Co.
I've *just* started Thinking in Java. I expect it to be very good because I really liked Thinking in C++ (which I read as an experienced C++ programmer, trying to stay ahead of the curve). I'm somewhat less experienced in Java, but expect to be very satisfied. You are a wonderful author. Kevin K. Lewis, Technologist, ObjectSpace, Inc.
I think it's a great book. I learned all I know about Java from this book. Thank you for making it avaliable for free over the Internet. If you wouldn't have I'd know nothing about Java at all. But the best thing is that your book isn't a commercial brouchure for Java. It also shows the bad sides of Java. YOU have done a great job here.
Frederik Fix, Belgium
I have been hooked to your books all the time. A couple of years ago, when I wanted to start with C++, it was "C++ - Inside & Out" which took me around the fascinating world of C++. It helped me in getting better oppurtunities in life. Now, in pursuit of more knowledge and when I wanted to learn Java, I bumped into "Thinking in Java" - No doubts in my mind as to whether I need some other book. Just fantastic. It is more like rediscovering myself as I get along with the book. It is just a month since I started with Java, and heartful thanks to you, I am understanding it better now. Anand Kumar.S - Software Engineer - Computervision (India)
Your book stands out as an excellent general introduction. Peter Robinson, University of Cambridge Computer Laboratory
About a month or so ago I discovered your Thinking in Java book. It's by far the best material I have come across to help me learn Java and just wanted you to know how lucky I feel to have found it. THANKS! Chuck Peterson, Product Leader, Internet Product Line, IVIS International
This is one of the best books I've read about a programming language… Chapter 16 on design patterns is one of the most interesting things I've read for long time. Ilan Finci, graduate student and teaching assistant, Institute of Computer Science, The Hebrew University of Jerusalem, Israel
The book is great. It's the third book on Java I've started on and I'm about 2/3 of the way through it now. I plan to finish this one. I found out about it because they now use it in some internal classes at Lucent Technologies and a friend told me about the book being on the net. Good work. Jerry Nowlin, MTS, Lucent Technologies
Of the 6 or so Java books I've accumulated to date, your "Thinking in Java" is by far the best and clearest. Michael Van Waas, Ph.D., President, TMR Associates
I just want to say thanks for "Thinking in Java", what a wonderful book you've made here! Not to mention downloadable for free! As a student I find your books invaluable (I have a copy of C++ Inside Out, another great book about C++), because they don't only teach me the how-to, but also the whys, which are of course very important in building a strong foundation in languages like C++ or Java. I have quite a lot of friends here who love programming just as I do, and I've told them about your books. They think it's great! Thanks again! P.S.: By the way, I'm an Indonesian and I live in Java. Ray Frederick Djajadinata, Student at Trisakti University, Jakarta
The mere fact that you have made this work free over the 'net has put me into shock. I thought I'd let you know how much I appreciate and respect what you're doing. Shane LeBouthillier, Computer Engineering student, University of Alberta, Canada
Home
About
Books
Speaking
Training
Source Code
|
Use this form to send your feedback and/or submit a link
(please, replace sample texts by appropriate data before submitting!) |
| |||||||||||||||||||||
Meurrens, Brussels, 1997
http://www.ulb.ac.be/esp/ip-Links/Java/joodcs/EckelJavaBook.html
http://www.EckelObjects.com/javabook.html
Bruce@EckelObjects.com)