Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Core Java: Fundamentals 8th Edition
There is a newer edition of this item:
- ISBN-100132354764
- ISBN-13978-0132354769
- Edition8th
- PublisherPearson P T R
- Publication dateJanuary 1, 2007
- LanguageEnglish
- Dimensions7.5 x 1.5 x 9.5 inches
- Print length836 pages
Similar items that may deliver to you quickly
Editorial Reviews
About the Author
Cay S. Horstmann is also coauthor of Core JavaServer Faces, Second Edition(Prentice Hall, 2007). Cay is a professor of computer science at San Jose State University, a Java Champion, and a frequent speaker at computer industry conferences.
Gary Cornell has been writing and teaching programming professionals for more than twenty years and is the cofounder of Apress. He has written numerous best-selling books for programming professionals, was a cofinalist for a Jolt Award, and won the Readers Choice award from Visual Basic Magazine.
Excerpt. © Reprinted by permission. All rights reserved.
To the Reader
In late 1995, the Java programming language burst onto the Internet scene and gained instant celebrity status. The promise of Java technology was that it would become the universal glue that connects users with information, whether that information comes from web servers, databases, information providers, or any other imaginable source. Indeed, Java is in a unique position to fulfill this promise. It is an extremely solidly engineered language that has gained acceptance by all major vendors, except for Microsoft. Its built-in security and safety features are reassuring both to programmers and to the users of Java programs. Java even has built-in support that makes advanced programming tasks, such as network programming, database connectivity, and multithreading, straightforward.
Since 1995, Sun Microsystems has released seven major revisions of the Java Development Kit. Over the course of the last eleven years, the Application Programming Interface (API) has grown from about 200 to over 3,000 classes. The API now spans such diverse areas as user interface construction, database management, internationalization, security, and XML processing.
The book you have in your hands is the first volume of the eighth edition of Core Java . With the publishing of each edition, the book followed the release of the Java Development Kit as quickly as possible, and each time, we rewrote the book to take advantage of the newest Java features. This edition has been updated to reflect the features of Java Standard Edition (SE) 6.
As with the previous editions of this book, we still target serious programmers who want to put Java to work on real projects. We think of you, our reader, as a programmer with a solid background in a programming language other than Java, and we assume that you don’t like books filled with toy examples (such as toasters, zoo animals, or “nervous text”). You won’t find any of these in this book. Our goal is to enable you to fully understand the Java language and library, not to give you an illusion of understanding.
In this book you will find lots of sample code that demonstrates almost every language and library feature that we discuss. We keep the sample programs purposefully simple to focus on the major points, but, for the most part, they aren’t fake and they don’t cut corners. They should make good starting points for your own code.
We assume you are willing, even eager, to learn about all the advanced features that Java puts at your disposal. For example, we give you a detailed treatment of:
- Object-oriented programming
- Reflection and proxies
- Interfaces and inner classes
- The event listener model
- Graphical user interface design with the Swing UI toolkit
- Exception handling
- Generic programming
- The collections framework
- Concurrency
With the explosive growth of the Java class library, a one-volume treatment of all the features of Java that serious programmers need to know is no longer possible. Hence, we decided to break up the book into two volumes. The first volume, which you hold in your hands, concentrates on the fundamental concepts of the Java language, along with the basics of user-interface programming. The second volume, Core Java , Volume II—Advanced Features (forthcoming, ISBN: 978-0-13-235479-0), goes further into the enterprise features and advanced user-interface programming. It includes detailed discussions of:
- Files and streams
- Distributed objects
- Databases
- Advanced GUI components
- Native methods
- XML processing
- Network programming
- Advanced graphics
- Internationalization
- JavaBeans
- Annotations
In this edition, we reshuffled the contents of the two volumes. In particular, multithreading is now covered in Volume I because it has become so important, with Moore’s law coming to an end.
When writing a book, errors and inaccuracies are inevitable. We’d very much like to know about them. But, of course, we’d prefer to learn about each of them only once. We have put up a list of frequently asked questions, bugs fixes, and workarounds in a web page at http://horstmann.com/corejava. Strategically placed at the end of the errata page (to encourage you to read through it first) is a form you can use to report bugs and suggest improvements. Please don’t be disappointed if we don’t answer every query or if we don’t get back to you immediately. We do read all e-mail and appreciate your input to make future editions of this book clearer and more informative.
A Tour of This Book
Chapter 1 gives an overview of the capabilities of Java that set it apart from other programming languages. We explain what the designers of the language set out to do and to what extent they succeeded. Then, we give a short history of how Java came into being and how it has evolved.
In Chapter 2, we tell you how to download and install the JDK and the program examples for this book. Then we guide you through compiling and running three typical Java programs, a console application, a graphical application, and an applet, using the plain JDK, a Java-enabled text editor, and a Java IDE.
Chapter 3 starts the discussion of the Java language. In this chapter, we cover the basics: variables, loops, and simple functions. If you are a C or C++ programmer, this is smooth sailing because the syntax for these language features is essentially the same as in C. If you come from a non-C background such as Visual Basic, you will want to read this chapter carefully.
Object-oriented programming (OOP) is now in the mainstream of programming practice, and Java is completely object oriented. Chapter 4 introduces encapsulation, the first of two fundamental building blocks of object orientation, and the Java language mechanism to implement it, that is, classes and methods. In addition to the rules of the Java language, we also give advice on sound OOP design. Finally, we cover the marvelous javadoc tool that formats your code comments as a set of hyperlinked web pages. If you are familiar with C++, then you can browse through this chapter quickly. Programmers coming from a non-object-oriented background should expect to spend some time mastering OOP concepts before going further with Java.
Classes and encapsulation are only one part of the OOP story, and Chapter 5 introduces the other, namely, inheritance. Inheritance lets you take an existing class and modify it according to your needs. This is a fundamental technique for programming in Java. The inheritance mechanism in Java is quite similar to that in C++. Once again, C++ programmers can focus on the differences between the languages.
Chapter 6 shows you how to use Java’s notion of an interface. Interfaces let you go beyond the simple inheritance model of Chapter 5. Mastering interfaces allows you to have full access to the power of Java’s completely object-oriented approach to programming. We also cover a useful technical feature of Java called inner classes. Inner classes help make your code cleaner and more concise.
In Chapter 7, we begin application programming in earnest. Every Java programmer should know a bit about GUI programming, and this volume contains the basics. We show how you can make windows, how to paint on them, how to draw with geometric shapes, how to format text in multiple fonts, and how to display images.
Chapter 8 is a detailed discussion of the event model of the AWT, the abstract window toolkit. You’ll see how to write the code that responds to events like mouse clicks or key presses. Along the way you’ll see how to handle basic GUI elements like buttons and panels.
Chapter 9 discusses the Swing GUI toolkit in great detail. The Swing toolkit allows you to build a cross-platform graphical user interface. You’ll learn all about the various kinds of buttons, text components, borders, sliders, list boxes, menus, and dialog boxes. However, some of the more advanced components are discussed in Volume II.
Chapter 10 shows you how to deploy your programs, either as applications or applets. We describe how to package programs in JAR files, and how to deliver applications over the Internet with the Java Web Start and applet mechanisms. Finally, we explain how Java programs can store and retrieve configuration information once they have been deployed.
Chapter 11 discusses exception handling, Java’s robust mechanism to deal with the fact that bad things can happen to good programs. Exceptions give you an efficient way of separating the normal processing code from the error handling. Of course, even after hardening your program by handling all exceptional conditions, it still might fail to work as expected. In the second half of this chapter, we give you a large number of useful debugging tips. Finally, we guide you through a sample debugging session.
Chapter 12 gives an overview of generic programming, a major advance of Java SE 5.0. Generic programming makes your programs easier to read and safer. We show you how you can use strong typing and remove unsightly and unsafe casts, and how you can deal with the complexities that arise from the need to stay compatible with older versions of Java.
The topic of Chapter 13 is the collections framework of the Java platform. Whenever you want to collect multiple objects and retrieve them later, you will want to use a collection that is best suited for your circumstances, instead of just tossing the elements into an array. This chapter shows you how to take advantage of the standard collections that are prebuilt for your use.
Chapter 14 finishes the book, with a discussion on multithreading, which enables you to program tasks to be done in parallel. (A thread is a flow of control within a program.) We show you how to set up threads and how to deal with thread synchronization. Multithreading has changed a great deal in Java SE 5.0, and we tell you all about the new mechanisms.
The Appendix lists the reserved words of the Java language. Conventions
As is common in many computer books, we use monospace type to represent computer code.
- NOTE: Notes are tagged with “note” icons.
- TIP: Tips are tagged with the “tip” icon.
- CAUTION: When there is danger ahead, we warn you with a “caution” icon.
- C++ NOTE: There are many C++ notes that explain the difference between Java and C++. You can skip over them if you don’t have a background in C++ or if you consider your experience with that language a bad dream of which you’d rather not be reminded.
Application Programming Interface
Java comes with a large programming library or Application Programming Interface (API). When using an API call for the first time, we add a short summary description tagged with an API icon at the end of the section. These descriptions are a bit more informal but, we hope, also a little more informative than those in the official on-line API documentation. We now tag each API note with the version number in which the feature was introduced, to help the readers who don’t use the “bleeding edge” version of Java.
Programs whose source code is on the Web are listed as examples.
Sample Code
The web site for this book at http://horstmann.com/corejava contains all sample code from the book, in compressed form. You can expand the file either with one of the familiar unzipping programs or simply with the jar utility that is part of the Java Development Kit. See Chapter 2 for more information about installing the Java Development Kit and the sample code.
Product details
- Publisher : Pearson P T R; 8th edition (January 1, 2007)
- Language : English
- Paperback : 836 pages
- ISBN-10 : 0132354764
- ISBN-13 : 978-0132354769
- Item Weight : 3 pounds
- Dimensions : 7.5 x 1.5 x 9.5 inches
- Best Sellers Rank: #4,607,002 in Books (See Top 100 in Books)
- #1,646 in Java Programming
- #5,535 in Computer Programming Languages
- #16,926 in Computer Software (Books)
- Customer Reviews:
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonReviews with images
Excellent condition
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
- Reviewed in the United States on July 13, 2012This was the required text for my recent Java II course at UCSD Extension. I had low expectations working with this book due to experience with other Java texts, and the age of the book (c. 2008). However, after spending some "quality time" with it (as in 200 hours), I came to appreciate the accuracy, detail, and insight contained in this book. I particularly liked learning from and modifying the downloadable examples. I find myself constantly referring back to book, almost as often as the on-line Java documentation. The sections on graphics, events, and GUI programming are very useful.
- Reviewed in the United States on December 9, 2008I am a self-taught Perl programmer. I've been using Perl 5 for about eight years, and in the last couple of years I've been wanting to move to Java. I've tried so many books - Herb Schildt's "Beginning Java" (too easy and boring examples), Deitels' gigantic volume (worthless crap - as are all of Deitel's stuff; I mean, do you really need to waste a chapter teaching would-be Java coders UML?), Cadenhead's "Teach Yourself Java 6 in 21 days" (left too many holes; not enough depth in critical areas, and lots of mistakes), etc. I finally found this book and ordered it. This is the one I should have been using all along.
When you work through this book, you get the sense that you are being taught by a real Java guru, an author who isn't going to leave you hanging. This is a serious text, and as others have noted -- it isn't for a new programmer. Having said that, it is perfect for anyone coming to Java from another language. About the only critical remark I would have is that I think the chapters on error-handling and on collections might have been better placed ahead of the chapters on Swing; as it is, the Swing stuff seems a little bit of a diversion in the middle of the book. But fortunately, this book is so well done that you can easily jump forward a couple of chapters, then back one, etc. Indeed, there are some places where the author simply says stuff like "the rest of this chapter may be more relevant to the tool-builder than to the application programmer; application programmers may want to skip ahead to the next chapter." To me, that represents an honest writer who has years of experience teaching people Java.
A word of advice: if you are the kind of person that learns best from little exercises, strict tutorials, etc., you may not want this book (except as a reference). If, on the other hand, you like trying out the stuff by applying it "in your own world" so to speak, this book is ideal; you should be sufficiently inspired to adapt the examples, etc., to your own liking.
I have worked through just about all of the book in about a month, and I am now confidently "converting" some of my Perl stuff over to Java. This book has given me a real love of Java, and I look forward to working my way through Volume II when I finish this one.
- Reviewed in the United States on January 6, 2013I've been a C programmer most of my career. I hadn't looked at Java code in 10 years. When I saw some confusing Java code that had C++ templates (i.e. generics), I realized I really had to sit down and refresh myself on Java.
This book is a good overview/refresher book. What I like best is that this book sort of accepts that many people reading this book are C/C++ people trying to learn Java. So there are many snippets within the book detailing differences. That's the best part for people like me to see those "ah ha" subtleties. They also go into the somewhat newer features of Java that I was completely unaware had been introduced within the last 7 or so years (most notably generics).
The one thing I dislike is that this book goes over a lot of stuff related to GUI programming. I'm not a GUI programmer by trade, so it's of no particular interest to me.
- Reviewed in the United States on October 23, 2010This is a real professional book on Java. It is very structured with accurate and detailed discussions, along with examples and references. We are currently using this book for a college class in Java at New York University. It's working well in that environment.
Note that there is a Volume 1 and a Volume 2 (advanced). I plan to purchase the Volume 2 based on the first book, and keep these as my core reference Java texts.
- Reviewed in the United States on May 18, 2010As a new student to the art of programming, but have been taking a few programming classes more recently, I was excited from the positive reviews of this book. I am not a fan of the book myself. I like that there are C++ comparisons, and tips throughout the book, but the book misses on a few key components, like showing you what the program would output if run. Most people reading programming books are not going to run all the examples in the book and just want to see the output. That's a minus 1 star for me. The 2nd minus star for me is the flow of the book. Chances are you're going to buy the book anyway since it's for a class and not for a general read. I'd give the book 3-4 stars, but in the end went with a 3 since I don't look forward to reading the book like other programming books.
- Reviewed in the United States on August 1, 2012The book is everything you could hope for.
But the Kindle reader "Sucks"
1)- Kindle has no page numbers!!!
2)- The code fragments could not be copied and pasted
3)- The formatting Sucks!!! the main text is configured
to your reading comfort, but the code is sorrily reduced in size
on the same page
4)- The Kindle reader will drive you "Nuts"
Having said all this, their tech support is instantly available
and will telephone you immediately if so desired,
Kindle has to get Real, we just want to read the
book and not make it an Engineering/Construction feat.
- Reviewed in the United States on June 11, 2013I am not an experienced programmer, but I have taken one java class in college so far. Someone recommended this book to me and I got it to prepare for the next java class. This book was way more helpful to me then the other book I had to get for class. The Authors did a very good job. I understand objects so much better because of this book.
Top reviews from other countries
- OwenReviewed in Canada on January 16, 2016
5.0 out of 5 stars A good book and good services.
I like the book. And the customer service from the seller is also very good.
- Exiled-EdikReviewed in the United Kingdom on October 18, 2015
5.0 out of 5 stars Very Clearly written.
Very clearly written and therefore very easy to read, useful to cover areas you may feel rusty in. I found it extremely accessible.
- Nico HeinzeReviewed in Germany on January 11, 2014
5.0 out of 5 stars For hardcore software developers - excellent
I've stumbled across the third edition (Java 1.4) many years ago, so when I received my Kindle this was a natural choice.
If you are a hardcore programmer and software developer interested in the basics and the nifty details of Java programming, this is "the" reference for you. Just be aware that you have to have experience in developing real-life applications; in my opinion this book is not well suited for real beginners in software development, but that's just my personal opinion. For experienced programmers switching to Java (or adding this language to their stack of languages), this is the perfect starting point.
- Tim SandmanReviewed in the United Kingdom on October 2, 2017
5.0 out of 5 stars Lovely item and and useful.
Lovely item and and useful.