Introduction to Computers, the Internet and Java
1.1 Introduction 2
1.2 Hardware and Software 4
1.2.1 Moore’s Law 4
1.2.2 Computer Organization 5
1.3 Data Hierarchy 6
1.4 Machine Languages, Assembly Languages and High-Level Languages 9
1.5 Introduction to Object Technology 10
1.5.1 The Automobile as an Object 10
1.5.2 Methods and Classes 11
1.5.3 Instantiation 11
1.5.4 Reuse 11
1.5.5 Messages and Method Calls 11
1.5.6 Attributes and Instance Variables 11
1.5.7 Encapsulation and Information Hiding 12
1.5.8 Inheritance 12
1.5.9 Interfaces 12
1.5.10 Object-Oriented Analysis and Design (OOAD) 12
1.5.11 The UML (Unified Modeling Language) 13
1.6 Operating Systems 13
1.6.1 Windows—A Proprietary Operating System 13
1.6.2 Linux—An Open-Source Operating System 14
1.6.3 Android 14
1.7 Programming Languages 15
1.8 Java 17
1.9 A Typical Java Development Environment 17
1.10 Test-Driving a Java Application 21
1.11 Internet and World Wide Web 25
1.11.1 The Internet: A Network of Networks 26
1.11.2 The World Wide Web: Making the Internet User-Friendly 26
1.11.3 Web Services and Mashups 26
1.11.4 Ajax 27
1.11.5 The Internet of Things 27
1.12 Software Technologies 28
1.13 Keeping Up-to-Date with Information Technologies 30
2 Introduction to Java Applications;
Input/Output and Operators 34
2.1 Introduction 35
2.2 Your First Program in Java: Printing a Line of Text 35
2.3 Modifying Your First Java Program 41
2.4 Displaying Text with printf 43
2.5 Another Application: Adding Integers 45
2.5.1 import Declarations 45
2.5.2 Declaring Class Addition 46
2.5.3 Declaring and Creating a Scanner to Obtain User Input from
the Keyboard 46
2.5.4 Declaring Variables to Store Integers 47
2.5.5 Prompting the User for Input 48
2.5.6 Obtaining an int as Input from the User 48
2.5.7 Prompting for and Inputting a Second int 49
2.5.8 Using Variables in a Calculation 49
2.5.9 Displaying the Result of the Calculation 49
2.5.10 Java API Documentation 49
2.6 Memory Concepts 50
2.7 Arithmetic 51
2.8 Decision Making: Equality and Relational Operators 54
2.9 Wrap-Up 58
3 Introduction to Classes, Objects, Methods
and Strings 69
3.1 Introduction 70
3.2 Instance Variables, set Methods and get Methods 71
3.2.1 Account Class with an Instance Variable, a set Method and a get Method 71
3.2.2 AccountTest Class That Creates and Uses an Object of Class Account 74
3.2.3 Compiling and Executing an App with Multiple Classes 77
3.2.4 Account UML Class Diagram with an Instance Variable and set and get Methods 77
3.2.5 Additional Notes on Class AccountTest 78
3.2.6 Software Engineering with private Instance Variables and
public set and get Methods 79
3.3 Primitive Types vs. Reference Types 80
3.4 Account Class: Initializing Objects with Constructors 81
3.4.1 Declaring an Account Constructor for Custom Object Initialization 81
3.4.2 Class AccountTest: Initializing Account Objects When They’re Created 82
3.5 Account Class with a Balance; Floating-Point Numbers 84
3.5.1 Account Class with a balance Instance Variable of Type double 85
3.5.2 AccountTest Class to Use Class Account 86
3.6 (Optional) GUI and Graphics Case Study: Using Dialog Boxes 90
3.7 Wrap-Up 93
4 Control Statements: Part 1; Assignment,++ and -- Operators 101
5 Control Statements: Part 2; Logical Operators 152
6 Methods: A Deeper Look 200
7 Arrays and ArrayLists 243
8 Classes and Objects: A Deeper Look 315
9 Object-Oriented Programming: Inheritance 360
10 Object-Oriented Programming:Polymorphism and Interfaces 395
11 Exception Handling: A Deeper Look 441
12 GUI Components: Part 1 473
13 Graphics and Java 2D 555
14 Strings, Characters and Regular Expressions 596
15 Files, Streams and Object Serialization 644
16 Generic Collections 684
17 Java SE 8 Lambdas and Streams 729
18 Recursion 776
19 Searching, Sorting and Big O 810
20 Generic Classes and Methods 839
21 Custom Generic Data Structures 869
22 GUI Components: Part 2 911
23 Concurrency 957
24 Accessing Databases with JDBC 1045
25 JavaFX GUI: Part 1 1107
26 JavaFX GUI: Part 2
27 JavaFX Graphics and Multimedia
28 Networking
29 Java Persistence API (JPA)
30 JavaServer™ Faces Web Apps: Part 1
31 JavaServer™ Faces Web Apps: Part 2
32 REST-Based Web Services
33 (Optional) ATM Case Study, Part 1:Object-Oriented Design with the UML
34 (Optional) ATM Case Study, Part 2:Implementing an Object-Oriented Design