Core Java 2, Volume 1: Fundamentals, 4th edition
Authors: Cay Horstmann, Gary Cornell
Venue:  (1998)

From the Book:PREFACE: To the Reader In late 1995, the Java programming language burst onto the Internet scene and gained instant celebrity status. The promise of Java is that it will become the universal glue that connects users with information, whether that information comes from Web servers, databases, information providers, and 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. 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 then, Sun Microsystems has released three major revisions of the language. Version 1.02, released in 1996, supported database connectivity and distributed objects. Version 1.1, released in 1997, added a robust event model, internationalization, and the Java Beans component model. Version 1.2, released at the end of 1998, has numerous enhancements, but one major improvement stands out: the "Swing" user interface toolkit that finally allows programmers to write truly portable GUI applications. The book you have in your hand is the fourth edition of our Core Java book. Each time, 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 time is no exception. In particular, all examples are updated to use the Swing toolkit and other 1.2 features. As withtheprevious editions of this book, we still target serious programmers who want to put Java to work on real projects. We still guarantee no nervous text or dancing tooth-shaped characters. We think of you, our reader, as a programmer with a solid background in a programming language. But you do not need to know C++ or object-oriented programming. Based on the responses we have received to the earlier editions of this book, we remain confident that experienced Visual Basic, C, COBOL, Delphi, or PowerBuilder programmers will have no trouble with this book. (You don't even need any experience in building graphical user interfaces in Windows, Unix, or the Macintosh.) What we do is assume you want to: Write real code to solve real problems and Don't like books filled with toy examples (such as kitchen appliances or fruit trees). You will find lots of sample code on the accompanying CD that demonstrates almost every language and library feature that we discuss. We kept 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 The Java reflection mechanism Inner classes Java event listener model Graphical user interface design with the Swing UI toolkit Exception handling (Java's error handling mechanism) Stream input/output and object serialization We still don't spend much time on the fun but less serious kind of Java programs whose sole purpose is to liven up your Web page. There are quite a few sources for this kind of material already-we recommend John Pew's book Instant Java, also published by Sun Microsystems Press/Prentice Hall. Finally, 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 the book up 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 goes further into the enterprise features and advanced user-interface programming. It includes detailed discussions of: Multithreading Network programming Distributed objects Container classes Databases Advanced graphics Advanced GUI components Internationalization Native methods JavaBeans 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 ...