Java How to Program, Early Objects, Global Edition, 11th Edition
- Length: 1287 pages
- Edition: 11
- Language: English
- Publisher: Pearson
- Publication Date: 2017
- ISBN-10: 1292223855
- ISBN-13: 9781292223858
- Sales Rank: #920443 (See Top 100 Books)
For courses in Java programming Unparalleled breadth and depth of object-oriented programming conceptsThe Deitels’ groundbreaking How to Program series offers unparalleled breadth and depth of programming fundamentals, object-oriented programming concepts and intermediate-level topics for further study. Java How to Program, Early Objects, 11th Edition, presents leading-edge computing technologies using the Deitel signature live-code approach, which demonstrates concepts in hundreds of complete working programs. The 11th Edition presents updated coverage of Java SE 8 and new Java SE 9 capabilities, including JShell, the Java Module System, and other key Java 9 topics. [Java How to Program, Late Objects, 11th Edition also is available.] MyLab™ Programming not included. Students, if MyLab is a recommended/mandatory component of the course, please ask your instructor for the correct ISBN and course ID. MyLab should only be purchased when required by an instructor. Instructors, contact your Pearson rep for more information.MyLab Programming is an online learning system designed to engage students and improve results. MyLab Programming consists of a set of programming exercises correlated to the programming concepts in this book. Through hundreds of practice problems, the system automatically detects errors in the logic and syntax of their code submissions and offers targeted hints that enable students to figure out what went wrong—and why.
Cover Half Title Title Copyright Page Contents Foreword Preface Before You Begin 1 Introduction to Computers, the Internet and Java 1.1 Introduction 1.2 Hardware and Software 1.2.1 Moore’s Law 1.2.2 Computer Organization 1.3 Data Hierarchy 1.4 Machine Languages, Assembly Languages and High-Level Languages 1.5 Introduction to Object Technology 1.5.1 Automobile as an Object 1.5.2 Methods and Classes 1.5.3 Instantiation 1.5.4 Reuse 1.5.5 Messages and Methopd Calls 1.5.6 Attributes and Instance Variables 1.5.7 Encapsulation and Information Hiding 1.5.8 Inheritance 1.5.9 Interfaces 1.5.10 Object-Oriented Analysis and Design (OOAD) 1.5.11 The UML (Unified Modeling Language) 1.6 Operating Systems 1.6.1 Windows—A Proprietary Operating System 1.6.2 Linux—An Open-Source Operating System 1.6.3 Apple’s macOS and Apple’s iOS for iPhone®, iPad® 1.6.4 Google’s Android 1.7 Programming Languages 1.8 Java 1.9 A Typical Java Development Environment 1.10 Test-Driving a Java Application 1.11 Internet and World Wide Web 1.11.1 Internet: A Network of Networks 1.11.2 World Wide Web: Making the Internet User-Friendly 1.11.3 Web Services and Mashups 1.11.4 Internet of Things 1.12 Software Technologies 1.13 Getting Your Questions Answered 2 Introduction to Java Applications; Input/Output and Operators 2.1 Introduction 2.2 Your First Program in Java: Printing a Line of Text 2.2.1 Compiling the Application 2.2.2 Executing the Application 2.3 Modifying Your First Java Program 2.4 Displaying Text with printf 2.5 Another Application: Adding Integers 2.5.1 import Declarations 2.5.2 Declaring and Creating a Scanner to Obtain User Input from the Keyboard 2.5.3 Prompting the User for Input 2.5.4 Declaring a Variable to Store an Integer and Obtaining anInteger from the Keyboard 2.5.5 Obtaining a Second Integer 2.5.6 Using Variables in a Calculation 2.5.7 Displaying the Calculation Result 2.5.8 Java API Documentation 2.5.9 Declaring and Initializing Variables in Separate Statements 2.6 Memory Concepts 2.7 Arithmetic 2.8 Decision Making: Equality and Relational Operators 2.9 Wrap-Up 3 Introduction to Classes, Objects, Methods and Strings 3.1 Introduction 3.2 Instance Variables, set Methods and get Methods 3.2.1 Account Class with an Instance Variable, and set and get Methods 3.2.2 AccountTest Class That Creates and Uses an Object of Class Account 3.2.3 Compiling and Executing an App with Multiple Classes 3.2.4 Account UML Class Diagram 3.2.5 Additional Notes on Class AccountTest 3.2.6 Software Engineering with private Instance Variables and public set and get Methods 3.3 Account Class: Initializing Objects with Constructors 3.3.1 Declaring an Account Constructor for Custom Object Initialization 3.3.2 Class AccountTest: Initializing Account Objects When They’re Created 3.4 Account Class with a Balance; Floating-Point Numbers 3.4.1 Account Class with a balance Instance Variable of Type double 3.4.2 AccountTest Class to Use Class Account 3.5 Primitive Types vs. Reference Types 3.6 (Optional) GUI and Graphics Case Study: A Simple GUI 3.6.1 What Is a Graphical User Interface? 3.6.2 JavaFX Scene Builder and FXML 3.6.3 Welcome App—Displaying Text and an Image 3.6.4 Opening Scene Builder and Creating the File Welcome.fxml 3.6.5 Adding an Image to the Folder Containing Welcome.fxml 3.6.6 Creating a VBox Layout Container 3.6.7 Configuring the VBox 3.6.8 Adding and Configuring a Label 3.6.9 Adding and Configuring an ImageView 3.6.10 Previewing the Welcome GUI 3.7 Wrap-Up 4 Control Statements: Part 1; Assignment, ++and -- Operators 4.1 Introduction 4.2 Algorithms 4.3 Pseudocode 4.4 Control Structures 4.4.1 Sequence Structure in Java 4.4.2 Selection Statements in Java 4.4.3 Iteration Statements in Java 4.4.4 Summary of Control Statements in Java 4.5 if Single-Selection Statement 4.6 if…else Double-Selection Statement 4.6.1 Nested if…else Statements 4.6.2 Dangling-else Problem 4.6.3 Blocks 4.6.4 Conditional Operator (?:) 4.7 Student Class: Nested if…else Statements 4.8 while Iteration Statement 4.9 Formulating Algorithms: Counter-Controlled Iteration 4.10 Formulating Algorithms: Sentinel-Controlled Iteration 4.11 Formulating Algorithms: Nested Control Statements 4.12 Compound Assignment Operators 4.13 Increment and Decrement Operators 4.14 Primitive Types 4.15 (Optional) GUI and Graphics Case Study: Event Handling; Drawing Lines 4.15.1 Test-Driving the Completed Draw Lines App 4.15.2 Building the App’s GUI 4.15.3 Preparing to Interact with the GUI Programmatically 4.15.4 Class DrawLinesController 4.15.5 Class DrawLines—The Main Application Class 4.16 Wrap-Up 5 Control Statements: Part 2; Logical Operators 5.1 Introduction 5.2 Essentials of Counter-Controlled Iteration 5.3 for Iteration Statement 5.4 Examples Using the for Statement 5.4.1 Application: Summing the Even Integers from 2 to 20 5.4.2 Application: Compound-Interest Calculations 5.5 do…while Iteration Statement 5.6 switch Multiple-Selection Statement 5.7 Class AutoPolicy Case Study: Strings in switch Statements 5.8 break and continue Statements 5.8.1 break Statement 5.8.2 continue Statement 5.9 Logical Operators 5.9.1 Conditional AND (&&) Operator 5.9.2 Conditional OR (||) Operator 5.9.3 Short-Circuit Evaluation of Complex Conditions 5.9.4 Boolean Logical AND (&) and Boolean Logical Inclusive OR (|)Operators 5.9.5 Boolean Logical Exclusive OR (^) 5.9.6 Logical Negation (!) Operator 5.9.7 Logical Operators Example 5.10 Structured-Programming Summary 5.11 (Optional) GUI and Graphics Case Study: Drawing Rectangles and Ovals 5.12 Wrap-Up 6 Methods: A Deeper Look 6.1 Introduction 6.2 Program Units in Java 6.3 static Methods, static Fields and Class Math 6.4 Methods with Multiple Parameters 6.5 Notes on Declaring and Using Methods 6.6 Method-Call Stack and Activation Records 6.6.1 Method-Call Stack 6.6.2 Stack Frames 6.6.3 Local Variables and Stack Frames 6.6.4 Stack Overflow 6.7 Argument Promotion and Casting 6.8 Java API Packages 6.9 Case Study: Secure Random-Number Generation 6.10 Case Study: A Game of Chance; Introducing enum Types 6.11 Scope of Declarations 6.12 Method Overloading 6.12.1 Declaring Overloaded Methods 6.12.2 Distinguishing Between Overloaded Methods 6.12.3 Return Types of Overloaded Methods 6.13 (Optional) GUI and Graphics Case Study: Colors and Filled Shapes 6.14 Wrap-Up 7 Arrays and ArrayLists 7.1 Introduction 7.2 Arrays 7.3 Declaring and Creating Arrays 7.4 Examples Using Arrays 7.4.1 Creating and Initializing an Array 7.4.2 Using an Array Initializer 7.4.3 Calculating the Values to Store in an Array 7.4.4 Summing the Elements of an Array 7.4.5 Using Bar Charts to Display Array Data Graphically 7.4.6 Using the Elements of an Array as Counters 7.4.7 Using Arrays to Analyze Survey Results 7.5 Exception Handling: Processing the Incorrect Response 7.5.1 The try Statement 7.5.2 Executing the catch Block 7.5.3 toString Method of the Exception Parameter 7.6 Case Study: Card Shuffling and Dealing Simulation 7.7 Enhanced for Statement 7.8 Passing Arrays to Methods 7.9 Pass-By-Value vs. Pass-By-Reference 7.10 Case Study: Class GradeBook Using an Array to Store Grades 7.11 Multidimensional Arrays 7.11.1 Arrays of One-Dimensional Arrays 7.11.2 Two-Dimensional Arrays with Rows of Different Lengths 7.11.3 Creating Two-Dimensional Arrays with Array-Creation Expressions 7.11.4 Two-Dimensional Array Example: Displaying Element Values 7.11.5 Common Multidimensional-Array Manipulations Performed with for Statements 7.12 Case Study: Class GradeBook Using a Two-Dimensional Array 7.13 Variable-Length Argument Lists 7.14 Using Command-Line Arguments 7.15 Class Arrays 7.16 Introduction to Collections and Class ArrayList 7.17 (Optional) GUI and Graphics Case Study: Drawing Arcs 7.18 Wrap-Up 8 Classes and Objects: A Deeper Look 8.1 Introduction 8.2 Time Class Case Study 8.3 Controlling Access to Members 8.4 Referring to the Current Object’s Members with the this Reference 8.5 Time Class Case Study: Overloaded Constructors 8.6 Default and No-Argument Constructors 8.7 Notes on Set and Get Methods 8.8 Composition 8.9 enum Types 8.10 Garbage Collection 8.11 static Class Members 8.12 static Import 8.13 final Instance Variables 8.14 Package Access 8.15 Using BigDecimal for Precise Monetary Calculations 8.16 (Optional) GUI and Graphics Case Study: Using Objects with Graphics 8.17 Wrap-Up 9 Object-Oriented Programming: Inheritance 9.1 Introduction 9.2 Superclasses and Subclasses 9.3 protected Members 9.4 Relationship Between Superclasses and Subclasses 9.4.1 Creating and Using a CommissionEmployee Class 9.4.2 Creating and Using a BasePlusCommissionEmployee Class 9.4.3 Creating a CommissionEmployee–BasePlusCommissionEmployeeInheritance Hierarchy 9.4.4 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables 9.4.5 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables 9.5 Constructors in Subclasses 9.6 Class Object 9.7 Designing with Composition vs. Inheritance 9.8 Wrap-Up 10 Object-Oriented Programming: Polymorphism and Interfaces 10.1 Introduction 10.2 Polymorphism Examples 10.3 Demonstrating Polymorphic Behavior 10.4 Abstract Classes and Methods 10.5 Case Study: Payroll System Using Polymorphism 10.5.1 Abstract Superclass Employee 10.5.2 Concrete Subclass SalariedEmployee 10.5.3 Concrete Subclass HourlyEmployee 10.5.4 Concrete Subclass CommissionEmployee 10.5.5 Indirect Concrete Subclass BasePlusCommissionEmployee 10.5.6 Polymorphic Processing, Operator instanceof and Downcasting 10.6 Allowed Assignments Between Superclass and Subclass Variables 10.7 final Methods and Classes 10.8 A Deeper Explanation of Issues with Calling Methods from Constructors 10.9 Creating and Using Interfaces 10.9.1 Developing a Payable Hierarchy 10.9.2 Interface Payable 10.9.3 Class Invoice 10.9.4 Modifying Class Employee to Implement Interface Payable 10.9.5 Using Interface Payable to Process Invoices and Employees Polymorphically 10.9.6 Some Common Interfaces of the Java API 10.10 Java SE 8 Interface Enhancements 10.10.1 default Interface Methods 10.10.2 static Interface Methods 10.10.3 Functional Interfaces 10.11 Java SE 9 private Interface Methods 10.12 private Constructors 10.13 Program to an Interface, Not an Implementation 10.13.1 Implementation Inheritance Is Best for Small Numbers of Tightly Coupled Classes 10.13.2 Interface Inheritance Is Best for Flexibility 10.13.3 Rethinking the Employee Hierarchy 10.14 (Optional) GUI and Graphics Case Study: Drawing with Polymorphism 10.15 Wrap-Up 11 Exception Handling: A Deeper Look 11.1 Introduction 11.2 Example: Divide by Zero without Exception Handling 11.3 Example: Handling ArithmeticExceptions and InputMismatchExceptions 11.4 When to Use Exception Handling 11.5 Java Exception Hierarchy 11.6 finally Block 11.7 Stack Unwinding and Obtaining Information from an Exception 11.8 Chained Exceptions 11.9 Declaring New Exception Types 11.10 Preconditions and Postconditions 11.11 Assertions 11.12 try-with-Resources: Automatic Resource Deallocation 11.13 Wrap-Up 12 JavaFX Graphical User Interfaces: Part 1 12.1 Introduction 12.2 JavaFX Scene Builder 12.3 JavaFX App Window Structure 12.4 Welcome App—Displaying Text and an Image 12.4.1 Opening Scene Builder and Creating the File Welcome.fxml 12.4.2 Adding an Image to the Folder Containing Welcome.fxml 12.4.3 Creating a VBox Layout Container 12.4.4 Configuring the VBox Layout Container 12.4.5 Adding and Configuring a Label 12.4.6 Adding and Configuring an ImageView 12.4.7 Previewing the Welcome GUI 12.5 Tip Calculator App—Introduction to Event Handling 12.5.1 Test-Driving the Tip Calculator App 12.5.2 Technologies Overview 12.5.3 Building the App’s GUI 12.5.4 TipCalculator Class 12.5.5 TipCalculatorController Class 12.6 Features Covered in the Other JavaFX Chapters 12.7 Wrap-Up 13 JavaFX GUI: Part 2 13.1 Introduction 13.2 Laying Out Nodes in a Scene Graph 13.3 Painter App: RadioButtons, Mouse Events and Shapes 13.3.1 Technologies Overview 13.3.2 Creating the Painter.fxml File 13.3.3 Building the GUI 13.3.4 Painter Subclass of Application 13.3.5 PainterController Class 13.4 Color Chooser App: Property Bindings and Property Listeners 13.4.1 Technologies Overview 13.4.2 Building the GUI 13.4.3 ColorChooser Subclass of Application 13.4.4 ColorChooserController Class 13.5 Cover Viewer App: Data-Driven GUIs with JavaFX Collections 13.5.1 Technologies Overview 13.5.2 Adding Images to the App’s Folder 13.5.3 Building the GUI 13.5.4 CoverViewer Subclass of Application 13.5.5 CoverViewerController Class 13.6 Cover Viewer App: Customizing ListView Cells 13.6.1 Technologies Overview 13.6.2 Copying the CoverViewer App 13.6.3 ImageTextCell Custom Cell Factory Class 13.6.4 CoverViewerController Class 13.7 Additional JavaFX Capabilities 13.8 JavaFX 9: Java SE 9 JavaFX Updates 13.9 Wrap-Up 14 Strings, Characters and Regular Expressions 14.1 Introduction 14.2 Fundamentals of Characters and Strings 14.3 Class String 14.3.1 String Constructors 14.3.2 String Methods length, charAt and getChars 14.3.3 Comparing Strings 14.3.4 Locating Characters and Substrings in Strings 14.3.5 Extracting Substrings from Strings 14.3.6 Concatenating Strings 14.3.7 Miscellaneous String Methods 14.3.8 String Method valueOf 14.4 Class StringBuilder 14.4.1 StringBuilder Constructors 14.4.2 StringBuilder Methods length, capacity, setLength and 14.4.3 StringBuilder Methods charAt, setCharAt, getChars and 14.4.4 StringBuilder append Methods 14.4.5 StringBuilder Insertion and Deletion Methods 14.5 Class Character 14.6 Tokenizing Strings 14.7 Regular Expressions, Class Pattern and Class Matcher 14.7.1 Replacing Substrings and Splitting Strings 14.7.2 Classes Pattern and Matcher 14.8 Wrap-Up 15 Files, Input/Output Streams, NIO and XML Serialization 15.1 Introduction 15.2 Files and Streams 15.3 Using NIO Classes and Interfaces to Get File and Directory Information 15.4 Sequential Text Files 15.4.1 Creating a Sequential Text File 15.4.2 Reading Data from a Sequential Text File 15.4.3 Case Study: A Credit-Inquiry Program 15.4.4 Updating Sequential Files 15.5 XML Serialization 15.5.1 Creating a Sequential File Using XML Serialization 15.5.2 Reading and Deserializing Data from a Sequential File 15.6 FileChooser and DirectoryChooser Dialogs 15.7 (Optional) Additional java.io Classes 15.7.1 Interfaces and Classes for Byte-Based Input and Output 15.7.2 Interfaces and Classes for Character-Based Input and Output 15.8 Wrap-Up 16 Generic Collections 16.1 Introduction 16.2 Collections Overview 16.3 Type-Wrapper Classes 16.4 Autoboxing and Auto-Unboxing 16.5 Interface Collection and Class Collections 16.6 Lists 16.6.1 ArrayList and Iterator 16.6.2 LinkedList 16.7 Collections Methods 16.7.1 Method sort 16.7.2 Method shuffle 16.7.3 Methods reverse, fill, copy, max and min 16.7.4 Method binarySearch 16.7.5 Methods addAll, frequency and disjoint 16.8 Class PriorityQueue and Interface Queue 16.9 Sets 16.10 Maps 16.11 Synchronized Collections 16.12 Unmodifiable Collections 16.13 Abstract Implementations 16.14 Java SE 9: Convenience Factory Methods for Immutable Collections 16.15 Wrap-Up 17 Lambdas and Streams 17.1 Introduction 17.2 Streams and Reduction 17.2.1 Summing the Integers from 1 through 10 with a for Loop 17.2.2 External Iteration with for Is Error Prone 17.2.3 Summing with a Stream and Reduction 17.2.4 Internal Iteration 17.3 Mapping and Lambdas 17.3.1 Lambda Expressions 17.3.2 Lambda Syntax 17.3.3 Intermediate and Terminal Operations 17.4 Filtering 17.5 How Elements Move Through Stream Pipelines 17.6 Method References 17.6.1 Creating an IntStream of Random Values 17.6.2 Performing a Task on Each Stream Element with forEach and a Method Reference 17.6.3 Mapping Integers to String Objects with mapToObj 17.6.4 Concatenating Strings with collect 17.7 IntStream Operations 17.7.1 Creating an IntStream and Displaying Its Values 17.7.2 Terminal Operations count, min, max, sum and average 17.7.3 Terminal Operation reduce 17.7.4 Sorting IntStream Values 17.8 Functional Interfaces 17.9 Lambdas: A Deeper Look 17.10 Stream<Integer> Manipulations 17.10.1 Creating a Stream<Integer> 17.10.2 Sorting a Stream and Collecting the Results 17.10.3 Filtering a Stream and Storing the Results for Later Use 17.10.4 Filtering and Sorting a Stream and Collecting the Results 17.10.5 Sorting Previously Collected Results 17.11 Stream<String> Manipulations 17.11.1 Mapping Strings to Uppercase 17.11.2 Filtering Strings Then Sorting Them in Case-Insensitive Ascending Order 17.11.3 Filtering Strings Then Sorting Them in Case-Insensitive Descending Order 17.12 Stream<Employee> Manipulations 17.12.1 Creating and Displaying a List<Employee> 17.12.2 Filtering Employees with Salaries in a Specified Range 17.12.3 Sorting Employees By Multiple Fields 17.12.4 Mapping Employees to Unique-Last-Name Strings 17.12.5 Grouping Employees By Department 17.12.6 Counting the Number of Employees in Each Department 17.12.7 Summing and Averaging Employee Salaries 17.13 Creating a Stream<String> from a File 17.14 Streams of Random Values 17.15 Infinite Streams 17.16 Lambda Event Handlers 17.17 Additional Notes on Java SE 8 Interfaces 17.18 Wrap-Up 18 Recursion 18.1 Introduction 18.2 Recursion Concepts 18.3 Example Using Recursion: Factorials 18.4 Reimplementing Class FactorialCalculator Using BigInteger 18.5 Example Using Recursion: Fibonacci Series 18.6 Recursion and the Method-Call Stack 18.7 Recursion vs. Iteration 18.8 Towers of Hanoi 18.9 Fractals 18.9.1 Koch Curve Fractal 18.9.2 (Optional) Case Study: Lo Feather Fractal 18.9.3 (Optional) Fractal App GUI 18.9.4 (Optional) FractalController Class 18.10 Recursive Backtracking 18.11 Wrap-Up 19 Searching, Sorting and Big O 19.1 Introduction 19.2 Linear Search 19.3 Big O Notation 19.3.1 O(1) Algorithms 19.3.2 O(n) Algorithms 19.3.3 O(n2) Algorithms 19.3.4 Big O of the Linear Search 19.4 Binary Search 19.4.1 Binary Search Implementation 19.4.2 Efficiency of the Binary Search 19.5 Sorting Algorithms 19.6 Selection Sort 19.6.1 Selection Sort Implementation 19.6.2 Efficiency of the Selection Sort 19.7 Insertion Sort 19.7.1 Insertion Sort Implementation 19.7.2 Efficiency of the Insertion Sort 19.8 Merge Sort 19.8.1 Merge Sort Implementation 19.8.2 Efficiency of the Merge Sort 19.9 Big O Summary for This Chapter’s Searching and Sorting Algorithms 19.10 Massive Parallelism and Parallel Algorithms 19.11 Wrap-Up 20 Generic Classes and Methods: A Deeper Look 20.1 Introduction 20.2 Motivation for Generic Methods 20.3 Generic Methods: Implementation and Compile-Time Translation 20.4 Additional Compile-Time Translation Issues: Methods That Use a Type Parameter as the Return Type 20.5 Overloading Generic Methods 20.6 Generic Classes 20.7 Wildcards in Methods That Accept Type Parameters 20.8 Wrap-Up 21 Custom Generic Data Structures 21.1 Introduction 21.2 Self-Referential Classes 21.3 Dynamic Memory Allocation 21.4 Linked Lists 21.4.1 Singly Linked Lists 21.4.2 Implementing a Generic List Class 21.4.3 Generic Classes ListNode and List 21.4.4 Class ListTest 21.4.5 List Method insertAtFront 21.4.6 List Method insertAtBack 21.4.7 List Method removeFromFront 21.4.8 List Method removeFromBack 21.4.9 List Method print 21.4.10 Creating Your Own Packages 21.5 Stacks 21.6 Queues 21.7 Trees 21.8 Wrap-Up 22 JavaFX Graphics and Multimedia 22.1 Introduction 22.2 Controlling Fonts with Cascading Style Sheets (CSS) 22.2.1 CSS That Styles the GUI 22.2.2 FXML That Defines the GUI—Introduction to XML Markup 22.2.3 Referencing the CSS File from FXML 22.2.4 Specifying the VBox’s Style Class 22.2.5 Programmatically Loading CSS 22.3 Displaying Two-Dimensional Shapes 22.3.1 Defining Two-Dimensional Shapes with FXML 22.3.2 CSS That Styles the Two-Dimensional Shapes 22.4 Polylines, Polygons and Paths 22.4.1 GUI and CSS 22.4.2 PolyShapesController Class 22.5 Transforms 22.6 Playing Video with Media, MediaPlayer and MediaViewer 22.6.1 VideoPlayer GUI 22.6.2 VideoPlayerController Class 22.7 Transition Animations 22.7.1 TransitionAnimations.fxml 22.7.2 TransitionAnimationsController Class 22.8 Timeline Animations 22.9 Frame-by-Frame Animation with AnimationTimer 22.10 Drawing on a Canvas 22.11 Three-Dimensional Shapes 22.12 Wrap-Up 23Concurrency 23.1 Introduction 23.2 Thread States and Life Cycle 23.2.1 New and Runnable States 23.2.2 Waiting State 23.2.3 Timed Waiting State 23.2.4 Blocked State 23.2.5 Terminated State 23.2.6 Operating-System View of the Runnable State 23.2.7 Thread Priorities and Thread Scheduling 23.2.8 Indefinite Postponement and Deadlock 23.3 Creating and Executing Threads with the Executor Framework 23.4 Thread Synchronization 23.4.1 Immutable Data 23.4.2 Monitors 23.4.3 Unsynchronized Mutable Data Sharing 23.4.4 Synchronized Mutable Data Sharing—Making Operations Atomic 23.5 Producer/Consumer Relationship without Synchronization 23.6 Producer/Consumer Relationship: ArrayBlockingQueue 23.7 (Advanced) Producer/Consumer Relationship with synchronized, wait, notify and notifyAll 23.8 (Advanced) Producer/Consumer Relationship: Bounded Buffers 23.9 (Advanced) Producer/Consumer Relationship: The Lock and Condition Interfaces 23.10 Concurrent Collections 23.11 Multithreading in JavaFX 23.11.1 Performing Computations in a Worker Thread: Fibonacci Numbers 23.11.2 Processing Intermediate Results: Sieve of Eratosthenes 23.12 sort/parallelSort Timings with the Java SE 8 Date/Time API 23.13 Java SE 8: Sequential vs. Parallel Streams 23.14 (Advanced) Interfaces Callable and Future 23.15 (Advanced) Fork/Join Framework 23.16 Wrap-Up 24 Accessing Databases with JDBC 24.1 Introduction 24.3 A books Database 24.4 SQL 24.4.1 Basic SELECT Query 24.4.2 WHERE Clause 24.4.4 Merging Data from Multiple Tables: INNER JOIN 24.4.5 INSERT Statement 24.4.6 UPDATE Statement 24.4.7 DELETE Statement 24.5 Setting Up a Java DB Database 24.5.1 Creating the Chapter’s Databases on Windows 24.5.2 Creating the Chapter’s Databases on macOS 24.5.3 Creating the Chapter’s Databases on Linux 24.6 Connecting to and Querying a Database 24.6.1 Automatic Driver Discovery 24.6.2 Connecting to the Database 24.6.3 Creating a Statement for Executing Queries 24.6.4 Executing a Query 24.6.5 Processing a Query’s ResultSet 24.7 Querying the books Database 24.7.1 ResultSetTableModel Class 24.7.2 DisplayQueryResults App’s GUI 24.7.3 DisplayQueryResultsController Class 24.8 RowSet Interface 24.9 PreparedStatements 24.9.1 AddressBook App That Uses PreparedStatements 24.9.2 Class Person 24.9.3 Class PersonQueries 24.9.4 AddressBook GUI 24.9.5 Class AddressBookController 24.10 Stored Procedures 24.11 Transaction Processing 24.12 Wrap-Up 25 Introduction to JShell: Java 9’s REPL 25.1 Introduction 25.2 Installing JDK 9 25.3 Introduction to JShell 25.3.1 Starting a JShell Session 25.3.2 Executing Statements 25.3.3 Declaring Variables Explicitly 25.3.4 Listing and Executing Prior Snippets 25.3.5 Evaluating Expressions and Declaring Variables Implicitly 25.3.6 Using Implicitly Declared Variables 25.3.7 Viewing a Variable’s Value 25.3.8 Resetting a JShell Session 25.3.9 Writing Multiline Statements 25.3.10 Editing Code Snippets 25.3.11 Exiting JShell 25.4 Command-Line Input in JShell 25.5 Declaring and Using Classes 25.5.1 Creating a Class in JShell 25.5.2 Explicitly Declaring Reference-Type Variables 25.5.3 Creating Objects 25.5.4 Manipulating Objects 25.5.5 Creating a Meaningful Variable Name for an Expression 25.5.6 Saving and Opening Code-Snippet Files 25.6 Discovery with JShell Auto-Completion 25.6.1 Auto-Completing Identifiers 25.6.2 Auto-Completing JShell Commands 25.7 Exploring a Class’s Members and Viewing Documentation 25.7.1 Listing Class Math’s static Members 25.7.2 Viewing a Method’s Parameters 25.7.3 Viewing a Method’s Documentation 25.7.4 Viewing a public Field’s Documentation 25.7.5 Viewing a Class’s Documentation 25.7.6 Viewing Method Overloads 25.7.7 Exploring Members of a Specific Object 25.8 Declaring Methods 25.8.1 Forward Referencing an Undeclared Method—Declaring Method displayCubes 25.8.2 Declaring a Previously Undeclared Method 25.8.3 Testing cube and Replacing Its Declaration 25.8.4 Testing Updated Method cube and Method displayCubes 25.9 Exceptions 25.10 Importing Classes and Adding Packages to the CLASSPATH 25.11 Using an External Editor 25.12 Summary of JShell Commands 25.12.1 Getting Help in JShell 25.12.2 /edit Command: Additional Features 25.12.3 /reload Command 25.12.4 /drop Command 25.12.5 Feedback Modes 25.12.6 Other JShell Features Configurable with /set 25.13 Keyboard Shortcuts for Snippet Editing 25.14 How JShell Reinterprets Java for Interactive Use 25.15 IDE JShell Support 25.16 Wrap-Up Chapters on the Web A Operator Precedence Chart B ASCII Character Set C Keywords and Reserved Words D Primitive Types E Using the Debugger E.1 Introduction E.2 Breakpoints and the run, stop, cont and print Commands E.3 The print and set Commands E.4 Controlling Execution Using the step, step up and next Commands E.5 The watch Command E.6 The clear Command E.7 Wrap-Up Appendices on the Web Index Symbols Numerics A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.