Java How to Program: An Objects-Natural Approach, 12/e
How to Program SeriesJava How to Program: An Objects-Natural Approach, 12/e
COMING SOON.
Source Code
Not a GitHub user? Download the ZIP file.
Preface
View the Preface to learn about the book’s approach and features
Table of Contents
View the full Table of Contents for each chapter’s coverage.
Before You Begin
View the Before You Begin for info on setting up your environment.
Test Drives [Under Development]
- JetBrains IntelliJ IDEA
- Microsoft Visual Studio Code
- Eclipse IDE for Java Developers
Other Links
- Modular JDK Graph—Diagram showing JDK 9’s new modular structure.
- Compiler Exercise—PDF of the optional compiler exercise in 10/e and 11/e
Features
- COMING SOON
Comments from Previous Editions Reviewers
“Gives new programmers the benefit of the wisdom derived from many years of software development experience!”—Edward F. Gehringer, North Carolina State University
“Introduces good design practices and methodologies right from the beginning. An excellent starting point for developing high-quality robust Java applications.”—Simon Ritter, Oracle Corporation
“The real world examples can be used with Java SE 7 or 8, allowing flexibility for students and instructors; great case studies that instructors can build upon.”—Khallai Taylor, Triton College and Lonestar College—Kingwood
“A great overview on how concurrency can help developers; it’s very readable and focusses on leveraging multi-core processors. “—Johan Vos, LodgON and Java Champion
“A great textbook with a myriad of examples from various application domains—excellent for a typical CS1 or CS2 course.”—William E. Duncan, Louisiana State University
“This book is amazing if you want to learn how to program in Java SE 8.”—Jorge Vargas, Yumbling and a Java Champion
“Excellent [optional] introduction to functional programming with lambdas and streams!”—Manfred Riem, Java Champion
“Great JavaFX chapter. The first JavaFX chapter provides a great jump-start on JavaFX—the successor to Swing. A very impressive treatment is given to many JavaFX concepts, from developing a simple application without writing any code, to developing an application that contains a wide variety of graphical user interface elements.”—James L. Weaver, Oracle Java Evangelist and author of Pro JavaFX 2
“Updated to reflect the state of the art in Java technologies; deep and crystal clear explanations. The social-consciousness [Making a Difference] exercises are something new and refreshing. Nice introduction to Java networking.”—José Antonio González Seco, Parliament of Andalusia
“An easy-to-read conversational style. Clear code examples propel readers to become proficient in Java. “—Patty Kraft, San Diego State U.
“The [early] introduction of the class concept is clearly presented. A comprehensive overview of control structures and the pitfalls that befall new programmers. I applaud the authors for their topical research and illustrative examples. The arrays exercises are sophisticated and interesting. The clearest explanation of pass-by-value and pass-by-reference that I’ve encountered. A logical progression of inheritance and the rationale for properly implementing encapsulation in a system involving an inheritance hierarchy. The polymorphism and exception handling discussions are the best I’ve seen. An excellent strings chapter. I like the [recursion] discussions of the ‘Lo Fractal’ and backtracking (which is useful in computer vision applications). A good segue into a data structures course.”—Ric Heishman, George Mason University
“Practical top-down, solution approach to teaching programming basics, covering pseudocode, algorithm development and activity diagrams. Of immense value to practitioners and students of the object-oriented approach. Demystifies inheritance and polymorphism, and illustrates their use in getting elegant, simple and maintainable code. The [optional] OO design case study presents the object-oriented approach in a simple manner, from requirements to Java code.”—Vinod Varma, Astro Infotech Private Limited
“Easy-to-follow examples provide great teaching opportunities! I like the [optional] graphics track early in the book—the exercises will be fun for the students. OO design techniques are incorporated throughout. The concept of inheritance is built through examples and is very understandable. Great examples of polymorphism and interfaces. Great comparison of recursion and iteration. The searching and sorting chapter is just right. A simplified explanation of Big O—the best I’ve read! I appreciate the coverage of GUI threading issues. Great approach to Java web technologies.”—Sue McFarland Metzger, Villanova University
“The Making a Difference exercises are inspired—they have a real contemporary feeling, both in their topics and in the way they encourage the student to gather data from the Internet and bring it back to the question at hand.”—Vince O’Brien, Pearson Education (our publisher)
“Most major concepts are illustrated by complete, annotated programs. Abundant exercises hone your understanding of the material. JDBC is explained well.”—Shyamal Mitra, University of Texas at Austin
“The best introductory textbook that I’ve encountered. I wish I had this book when I was learning how to program! Good introduction to the software engineering process.”—Lance Andersen, Oracle Corporation
“You’ll be well on your way to becoming a great Java programmer with this book.”—Peter Pilgrim, Java Champion, Consultant
“A good objects-early introduction to Java. Exceptionally well-written recursion chapter. Excellent descriptions of the search and sort algorithms and a gentle introduction to Big-O notation—the examples give the code for the algorithms, and output that creates a picture of how the algorithms work.”—Diana Franklin, University of California, Santa Barbara
“Suitable for new programmers, intermediate-level programmers who want to hone their skills, and expert programmers who need a well-organized reference. Event handling and layouts are well explained.”—Manjeet Rege, Rochester Institute of Technology
“Beautiful collections of exercises—a nice illustration of how to use Java to generate impressive graphics.”—Amr Sabry, Indiana University
“The [optional] OOD ATM case study puts many concepts from previous chapters together in a plan for a large program, showing the object-oriented design process—the discussion of inheritance and polymorphism is especially good as the authors integrate these into the design.”—Susan Rodger, Duke University
“The transition from design to implementation is explained powerfully—the reader can easily understand the design issues and how to implement them in Java.”—S. Sivakumar, Astro Infotech Private Limited
“Comprehensive introduction to Java, now in its eighth major iteration. With clear descriptions, useful tips and hints, and well thought out exercises, this is a great book for studying the world’s most popular programming language.”—Simon Ritter, Oracle Corporation
“Comprehensive treatment of Java programming, covering both the latest version of the language and Java SE APIs, with its concepts and techniques reinforced by a plethora of well-thought-through exercises.”—Dr. Danny Coward, Oracle Corporation
“There are many Java programming books in the world. This textbook is the best one. If you like to introduce object-oriented programming early and smoothly, then this is the right one for you!”—Dr. Huiwei Guan, North Shore Community College
“Fantastic textbook and reference. Provides great detail on the latest Java features including lambdas. The code examples make it easy to understand the concepts.”—Lance Andersen, Principal Member of the Technical Staff, Oracle Corporation
“If you think a 10th edition is just going to be a repeat then you would not do this book justice. It has the breadth and depth to get a beginning Java programmer started, but at the same time it is a good companion for a more seasoned programmer who wants to get updated to the latest version of Java. Perfect introduction to strings. Good explanation of static vs. non-static methods and variables. Best introduction to Java 2D I’ve seen! The collections framework is well explained. Good introduction to the most essential data structures. A nice gentle introduction to JavaFX.”—Manfred Riem, Java Champion
“Clearly describes the use cases for different parts of the Java API’s. The tips and observations are very useful. Clearly explains opportunities and pitfalls in Java. Rather than telling the reader what to do and not do, the rationale behind these opportunities and pitfalls is explained. The new features introduced in Java 8 are well mixed with older functionality.”—Johan Vos, LodgON and Java Champion
“Really good, clear explanation of object-oriented programming fundamentals. Excellent polymorphism chapter. Covers all the essentials of Strings. Good to see things like try-with-resources and DirectoryStream being used. Excellent generic collections chapter. Covering lambdas and streams in one chapter is a tough challenge; you’ve done pretty well. Concurrency chapter gives good coverage of numerous aspects. Good data structures chapter. Introduces JavaFX, the great new way to develop client applications in Java; I like the use of Scene Builder to create the GUI with drag-and-drop design rather than doing it by hand, which shows the way it should be done.”—Simon Ritter, Oracle Corporation
“GUI examples are very good and the exercises are well thought out. Graphics examples are easy to follow; good and challenging exercises. Recursion is a well-written chapter; factorials, the Fibonacci series and the Tower of Hanoi are good examples. The JavaFX GUI chapter provides a solid introduction to using the JavaFX Scene Builder demonstrating how easy it is to create Java-based GUI applications.”—Lance Andersen,
Principal Member of the Technical Staff, Oracle Corporation
“The Making a Difference exercises are well thought through. I like the DeckOfCards example [in the Arrays and ArrayLists chapter]. The evolving inheritance example is a good approach to motivating inheritance. I like the [polymorphism] employee example. Very thorough and well explained GUI chapter; I liked the layout exercises. Thorough strings chapter; I like the clear definitions of regular expressions and the Pig Latin exercise. Good introduction to collections; Hashtable performance discussion was good. I like the summary of searching and sorting algorithms with Big O values. Solid treatment of threading.”—Dr. Danny Coward, Oracle Corporation
“Nice breadth of coverage of traditional core Java and programming topics as well as newer areas such as lambda expressions and areas becoming more critical such as concurrent programming. A fine intro chapter. I like the [Intro to Classes] bank account example. [Arrays and ArrayLists is a] fine chapter. [Classes and Objects: A Deeper Look] provides a good examination of data type creation. Nice chapter on exception handling. Very nice coverage of files, streams and object serialization. Very nice chapter on generics. Nice overview of hand-managed node-based data structures.”—Evan Golub, University of Maryland
“I like the references to Big data, Moore’s Law and encapsulation. The inheritance chapter was excellent; examples were gender neutral which is perfect; the University Community Member inheritance hierarchy is a great example.”—Khallai Taylor, Assistant Professor, Triton College and Adjunct Professor, Lonestar College—Kingwood
“Good approach to important concepts like static, accessors and private fields and their validation. Good explanation of control statements, and translating from pseudocode to a Java program. [Classes and Objects: A Deeper Look] coverage is very interesting—I like how the book is flowing. Excellent explanation of Java SE 8 interfaces. Excellent explanation of exceptions.”—Jorge Vargas, Yumbling and a Java Champion
“Very interesting and entertaining introduction. Good job explaining arrays before the more abstract collections. Guiding the reader to avoid dangerous patterns is equally important as explaining the correct syntax; great work! Excellent introduction to object-oriented concepts; rather than just a theoretical overview, it points the reader to how OO is implemented. Great polymorphism chapter—should help the reader distinguish between abstract classes and Java 8 interfaces with default methods. Good discussion of analyzing stack traces, since exceptions provide useful debugging information. Great job explaining Java2D. Shows how easily files and the filesystem are accessible using Java. Very good introduction to hashtables. Pushing all lambda-related content in a single chapter is hard, but the authors succeeded; I like the way they show how lambda expressions compare to existing code with inner classes; shows that it’s the compiler that does the work. Recursion is well explained. Great introduction to BigInteger and BigDecimal. One of the best explanations of generics I’ve read. Clearly explains collections, and when and how they should be used; It’s important that developers understand this, since choosing a wrong implementation can lead to massive performance penalties or hard-to-understand programs. The explanations of linked lists, stacks and queues are excellent.”—Johan Vos, LodgON and Java Champion
Share This Page