Object-Oriented Programming
Real-World Objects00:00
Classes and Objects00:00
Object Behavior00:00
Methods and Messages00:00
Inheritance, Abstraction, and Polymorphism
Encapsulation00:00
Inheritance00:00
Method Overriding00:00
Polymorphism00:00
Writing a Simple Class
Classes in Java™00:00
Class Modifiers and Types00:00
Class Instance Variables00:00
Primitives vs. Object References00:00
Creating Objects00:00
Adding Methods to the Class
Passing Parameters Into Methods00:00
Returning a Value From a Method00:00
Overloaded Methods00:00
Constructors00:00
Optimizing Constructor Usage00:00
Language Statements
Operators00:00
Comparison and Logical Operators00:00
Looping00:00
Continue and Break Statements00:00
The switch Statement00:00
Using Strings
Strings00:00
String Methods00:00
String Equality00:00
StringBuffer00:00
StringBuilder00:00
Java 8 – StringJoiner00:00
Specializing in a Subclass
Extending a Class00:00
Casting00:00
The Object Class00:00
Default Constructor00:00
Implicit Constructor Chaining00:00
Fields and Variables
Extending a Class00:00
Instance vs. Local Variables: Usage Differences00:00
Data Types00:00
Default Values00:00
Block Scoping Rules00:00
Final and Static Fields00:00
Static Methods00:00
Using Arrays
Arrays00:00
Accessing the Array00:00
Multidimensional Array00:00
Copying Arrays00:00
Variable Method Arguments00:00
Java Packages and Visibility
Class Location of Packages00:00
The Package Keywor00:00
Importing Classes00:00
Executing Programs00:00
Java Naming Conventions00:00
Inheritance and Polymorphism
Polymorphism: The Subclasses00:00
Upcasting vs. Downcasting00:00
Calling Superclass Methods From Subclass00:00
The final Keyword00:00
Interfaces and Abstract Classes
Separating Capability from Implementation00:00
Abstract Classes00:00
Implementing an Interface00:00
Java 8 – Implementing methods in an interface00:00
Abstract Classes vs. Interfaces00:00
Exceptions
Exception Architecture00:00
Handling Multiple Exceptions00:00
Automatic Closure of Resources00:00
Creating Your Own Exceptions00:00
Throwing Exceptions00:00
Checked vs. Unchecked Exceptions00:00
Utility Classes
Wrapper Classes00:00
The Number Class00:00
Random Numbers00:00
Autoboxing/Unboxing00:00
The Date Class00:00
Java 8 – Date/Time API00:00
Java 8 – The Optional class00:00
Collections
Characterizing Collections00:00
Collection Interface Hierarchy00:00
Iterators00:00
The Set Interface00:00
The List Interface00:00
Queue Interface00:00
Map Interfaces00:00
Filtering collection data00:00
Sorting Collection data00:00
Using the Right Collection00:00
Collections and Multithreading00:00
Introduction to Lambda Expressions
Functional Interfaces00:00
Lamba Expression syntax00:00
Streams
Introduce the Stream API00:00
Streams and Concurrency00:00
Collections, Lamda and Streams
Using Streams in Collections00:00
Filtering and sorting Collection data00:00
Sorting Collection data00:00
Introduction to Annotations
Annotations Overview00:00
Working with Java Annotations00:00
JDBC
Connecting to the Database00:00
Statement and PreparedStatement00:00
ResultSet00:00
Executing Inserts, Updates, and Deletes00:00
Controlling Transactions and Concurrency00:00
Multithreading and Concurrency
Multithreading00:00
Principles of Multithreading00:00
Principles of Multithreading00:00
Basic Features of the Thread Class00:00
Thread Scheduling00:00
Thread Synchronization00:00
Concurrent Java00:00
Concurrent Locks are Explicit and Flexible00:00
Executor Interfaces Provide Thread Management00:00
Challenges for Concurrent Use of Collections00:00
Concurrent Collections00:00
Atomic Variables Avoid00:00
Synchronization00:00