Book description
A practical introduction to Java programming—fully revised for the latest version, Java SE 17Thoroughly updated for Java Platform Standard Edition 17, this hands-on resource shows, step by step, how to get started programming in Java from the very first chapter. Written by Java guru Herbert Schildt, the book starts with the basics, such as how to create, compile, and run a Java program. From there, you will learn essential Java keywords, syntax, and commands.
Java: A Beginner's Guide, Ninth Edition covers the basics and touches on advanced features, including multithreaded programming, generics, Lambda expressions, and Swing. Enumeration, modules, and interface methods are also clearly explained. This guide delivers the appropriate mix of theory and practical coding necessary to get you up and running developing Java applications in no time!
- Clearly explains all of the new Java SE 17 features
- Features self-tests, exercises, and downloadable code samples
- Written by bestselling author and leading Java authority Herbert Schildt
Table of contents
- Cover
- Title Page
- Copyright Page
- Contents
- INTRODUCTION
-
1 Java Fundamentals
- The History and Philosophy of Java
- Object-Oriented Programming
- The Java Development Kit
- A First Simple Program
- Handling Syntax Errors
- A Second Simple Program
- Another Data Type
- Try This 1-1: Converting Gallons to Liters
- Two Control Statements
- Create Blocks of Code
- Semicolons and Positioning
- Indentation Practices
- Try This 1-2: Improving the Gallons-to-Liters Converter
- The Java Keywords
- Identifiers in Java
- The Java Class Libraries
- Chapter 1 Self Test
-
2 Introducing Data Types and Operators
- Why Data Types Are Important
- Java’s Primitive Types
- The Boolean Type
- Try This 2-1: How Far Away Is the Lightning?
- Literals
- A Closer Look at Variables
- The Scope and Lifetime of Variables
- Operators
- Arithmetic Operators
- Relational and Logical Operators
- Short-Circuit Logical Operators
- The Assignment Operator
- Shorthand Assignments
- Type Conversion in Assignments
- Casting Incompatible Types
- Operator Precedence
- Try This 2-2: Display a Truth Table for the Logical Operators
- Expressions
-
3 Program Control Statements
- Input Characters from the Keyboard
- The if Statement
- Nested ifs
- The if-else-if Ladder
- The Traditional switch Statement
- Nested switch Statements
- Try This 3-1: Start Building a Java Help System
- The for Loop
- Some Variations on the for Loop
- Missing Pieces
- Loops with No Body
- Declaring Loop Control Variables Inside the for Loop
- The Enhanced for Loop
- The while Loop
- The do-while Loop
- Try This 3-2: Improve the Java Help System
- Use break to Exit a Loop
- Use break as a Form of goto
- Use continue
- Try This 3-3: Finish the Java Help System
- Nested Loops
- Chapter 3 Self Test
-
4 Introducing Classes, Objects, and Methods
- Class Fundamentals
- How Objects Are Created
- Reference Variables and Assignment
- Methods
- Returning from a Method
- Returning a Value
- Using Parameters
- Try This 4-1: Creating a Help Class
- Constructors
- Parameterized Constructors
- Adding a Constructor to the Vehicle Class
- The new Operator Revisited
- Garbage Collection
- The this Keyword
- Chapter 4 Self Test
-
5 More Data Types and Operators
- Arrays
- Try This 5-1: Sorting an Array
- Multidimensional Arrays
- Alternative Array Declaration Syntax
- Assigning Array References
- Using the length Member
- Try This 5-2: A Queue Class
- The For-Each Style for Loop
- Strings
- Using a String to Control a switch Statement
- Using Command-Line Arguments
- The Bitwise Operators
- Try This 5-3: A ShowBits Class
- The ? Operator
- Chapter 5 Self Test
-
6 A Closer Look at Methods and Classes
- Controlling Access to Class Members
- Try This 6-1: Improving the Queue Class
- Pass Objects to Methods
- Returning Objects
- Method Overloading
- Overloading Constructors
- Try This 6-2: Overloading the Queue Constructor
- Recursion
- Understanding static
- Try This 6-3: The Quicksort
- Introducing Nested and Inner Classes
- Varargs: Variable-Length Arguments
- Chapter 6 Self Test
-
7 Inheritance
- Inheritance Basics
- Member Access and Inheritance
- Constructors and Inheritance
- Using super to Call Superclass Constructors
- Using super to Access Superclass Members
- Try This 7-1: Extending the Vehicle Class
- Creating a Multilevel Hierarchy
- When Are Constructors Executed?
- Superclass References and Subclass Objects
- Method Overriding
- Overridden Methods Support Polymorphism
- Why Overridden Methods?
- Using Abstract Classes
- Using final
- The Object Class
- Chapter 7 Self Test
-
8 Packages and Interfaces
- Packages
- Packages and Member Access
- Understanding Protected Members
- Importing Packages
- Java’s Class Library Is Contained in Packages
- Interfaces
- Implementing Interfaces
- Using Interface References
- Try This 8-1: Creating a Queue Interface
- Variables in Interfaces
- Interfaces Can Be Extended
- Default Interface Methods
- Use static Methods in an Interface
- Private Interface Methods
- Final Thoughts on Packages and Interfaces
- Chapter 8 Self Test
-
9 Exception Handling
- The Exception Hierarchy
- Exception Handling Fundamentals
- The Consequences of an Uncaught Exception
- Using Multiple catch Statements
- Catching Subclass Exceptions
- Try Blocks Can Be Nested
- Throwing an Exception
- A Closer Look at Throwable
- Using finally
- Using throws
- Three Additional Exception Features
- Java’s Built-in Exceptions
- Creating Exception Subclasses
- Try This 9-1: Adding Exceptions to the Queue Class
- Chapter 9 Self Test
-
10 Using I/O
- Java’s I/O Is Built upon Streams
- Byte Streams and Character Streams
- The Byte Stream Classes
- The Character Stream Classes
- The Predefined Streams
- Using the Byte Streams
- Reading and Writing Files Using Byte Streams
- Automatically Closing a File
- Reading and Writing Binary Data
- Try This 10-1: A File Comparison Utility
- Random-Access Files
- Using Java’s Character-Based Streams
- File I/O Using Character Streams
- Using Java’s Type Wrappers to Convert Numeric Strings
- Try This 10-2: Creating a Disk-Based Help System
- Chapter 10 Self Test
-
11 Multithreaded Programming
- Multithreading Fundamentals
- The Thread Class and Runnable Interface
- Creating a Thread
- Try This 11-1: Extending Thread
- Creating Multiple Threads
- Determining When a Thread Ends
- Thread Priorities
- Synchronization
- Using Synchronized Methods
- The synchronized Statement
- Thread Communication Using notify( ), wait( ), and notifyAll( )
- Suspending, Resuming, and Stopping Threads
- Try This 11-2: Using the Main Thread
- Chapter 11 Self Test
-
12 Enumerations, Autoboxing, Annotations, and More
- Enumerations
- Java Enumerations Are Class Types
- The values( ) and valueOf( ) Methods
- Constructors, Methods, Instance Variables, and Enumerations
- Enumerations Inherit Enum
- Try This 12-1: A Computer-Controlled Traffic Light
- Autoboxing
- Type Wrappers
- Autoboxing Fundamentals
- Autoboxing and Methods
- Autoboxing/Unboxing Occurs in Expressions
- Static Import
- Annotations (Metadata)
- Introducing instanceof
- Chapter 12 Self Test
-
13 Generics
- Generics Fundamentals
- A Simple Generics Example
- Bounded Types
- Using Wildcard Arguments
- Bounded Wildcards
- Generic Methods
- Generic Constructors
- Generic Interfaces
- Try This 13-1: Create a Generic Queue
- Raw Types and Legacy Code
- Type Inference with the Diamond Operator
- Local Variable Type Inference and Generics
- Erasure
- Ambiguity Errors
- Some Generic Restrictions
-
14 Lambda Expressions and Method References
- Introducing Lambda Expressions
- Block Lambda Expressions
- Generic Functional Interfaces
- Try This 14-1: Pass a Lambda Expression as an Argument
- Lambda Expressions and Variable Capture
- Throw an Exception from Within a Lambda Expression
- Method References
- Constructor References
- Predefined Functional Interfaces
- Chapter 14 Self Test
- 15 Modules
- 16 Switch Expressions, Records, and Other Recently Added Features
-
17 Introducing Swing
- The Origins and Design Philosophy of Swing
- Components and Containers
- Layout Managers
- A First Simple Swing Program
- Swing Event Handling
- Use JButton
- Work with JTextField
- Create a JCheckBox
- Work with JList
- Try This 17-1: A Swing-Based File Comparison Utility
- Use Anonymous Inner Classes or Lambda Expressions to Handle Events
-
A Answers to Self Tests
- Chapter 1: Java Fundamentals
- Chapter 2: Introducing Data Types and Operators
- Chapter 3: Program Control Statements
- Chapter 4: Introducing Classes, Objects, and Methods
- Chapter 5: More Data Types and Operators
- Chapter 6: A Closer Look at Methods and Classes
- Chapter 7: Inheritance
- Chapter 8: Packages and Interfaces
- Chapter 9: Exception Handling
- Chapter 10: Using I/O
- Chapter 11: Multithreaded Programming
- Chapter 12: Enumerations, Autoboxing, Annotations, and More
- Chapter 13: Generics
- Chapter 14: Lambda Expressions and Method References
- Chapter 15: Modules
- Chapter 16: Switch Expressions, Records, and Other Recently Added Features
- Chapter 17: Introducing Swing
- B Using Java’s Documentation Comments
- C Compile and Run Simple Single-File Programs in One Step
- D Introducing JShell
- E More Java Keywords
- Index
Product information
- Title: Java: A Beginner's Guide, Ninth Edition, 9th Edition
- Author(s):
- Release date: January 2022
- Publisher(s): McGraw-Hill
- ISBN: 9781260463569
You might also like
book
Java: A Beginner's Guide, Eighth Edition, 8th Edition
A practical introduction to Java programming—fully revised for long-term support release Java SE 11 Thoroughly updated …
book
Learning Java, 4th Edition
Java is the preferred language for many of today’s leading-edge technologies—everything from smartphones and game consoles …
book
Java in a Nutshell, 7th Edition
This updated edition of Java in a Nutshell not only helps experienced Java programmers get the …
book
Java in a Nutshell, 8th Edition
This updated edition of the Nutshell guide not only helps experienced Java programmers get the most …