Java Foundations and Memory Management
0:00 The Java Virtual Machine as a Runtime Environment: Platform Independence, Advantages, and Disadvantages
2:03 The Compilation Process: Source Code, Bytecode, Just In Time Compiler, and Machine Code
3:58 Imperative versus Object Oriented Programming Concepts in Java
6:01 Data Types: Primitive Data Types versus Complex Reference Types
8:00 Memory Areas: The Stack versus the Heap
9:43 Arrays as a Data Structure: One Dimensional and Multidimensional Arrays in Memory
11:27 Control Flow Structures: Decision Branches and Loops
Modular Programming in Java
13:14 Principle of Modularisation: Separation of Client, Application Programming Interface, and Implementation
14:55 Class Variables and Static Methods versus Instance Variables and Instance Methods
16:34 Method Overloading within a Class and the Signature Rules
18:10 Namespaces: Packages, Declaration, Import Statements, and Static Imports
19:41 Visibility Modifiers on Module Level
21:14 Scope of Local Variables
Object-Oriented Programming - Foundations
22:42 Classes as Blueprints and Objects as Instances
24:05 Encapsulation and Data Encapsulation using Getter and Setter Methods
25:39 Constructors: The Default Constructor, Overloaded Constructors, and Constructor Chaining
27:16 The this Reference to the Current Object
28:47 Immutable versus Mutable Data Types
30:20 Object Comparison: Object Identity versus Content Equality
31:50 String Pooling
33:18 Handling and Checking Null References and Avoiding the Null Pointer Exception
34:46 Automatic Memory Management: Garbage Collection and the Mark and Sweep Algorithm
Inheritance Interfaces and Polymorphism
36:18 Generalisation and Specialisation Class Inheritance using extends
37:52 The Substitution Principle
39:17 Method Overriding versus Method Overloading
40:43 The Universal Base Class Object and Overriding toString equals and hashCode
42:23 Constructor Calls in Inheritance Hierarchies using super
43:50 Dynamic Binding at Runtime
45:21 Abstract Classes and Abstract Methods
46:52 Interfaces as Functional Contracts
48:23 Single Inheritance of Classes versus Multiple Implementation of Interfaces
49:53 Marker Interfaces
Unified Modeling Language Class Diagrams and Object Relationships
51:25 Unified Modeling Language
53:10 Associations
54:36 Aggregation
55:44 Composition
56:56 Realisation Relationships Inheritance
Exception Handling and File Work
58:14 Class Hierarchy of Exceptions Throwable Error versus Exception
59:36 Checked Exceptions versus Unchecked Exceptions and Runtime Exceptions
1:00:58 Triggering Exceptions
1:02:16 Catching and Handling with try catch Blocks
1:03:33 The finally Block
1:04:47 The try with resources Statement
1:06:05 Basics of File Input Output in Java using File FileReader and BufferedReader
Container Types And Data Structures Collections
1:07:25 Abstract Data Types For Managing Sets Of Objects
1:08:39 The Stack Container
1:09:53 The Queue Container
1:11:03 List Container Random Access And Sequential Order
1:12:14 Set Sets Without Duplicates Unordered
1:13:22 Map Key Value Mappings And Uniqueness Of Keys
1:14:26 Data Structures For Implementations
1:15:42 Algorithms On Linked Lists
1:16:56 The Java Collections Framework
Generic Programming
1:18:18 Basic Idea And Motivation Type Safety At Compile Time
1:19:46 Parametric Polymorphism
1:20:59 Syntax Of Generic Classes And Interfaces
1:22:15 Generic Methods And Bounded Type Parameters
1:23:36 Concepts Of Type Erasure Of The Java Compiler And Bytecode Compatibility
1:24:56 Special Case Arrays
1:26:23 Variance Concepts
Main Topic Nine Design Patterns
1:27:56 Concept Motivation And The Gang Of Four Catalog
1:29:12 Pattern Categories
1:30:24 Creational Patterns
1:31:54 Structural Patterns Adapter And Composite
1:33:22 Behavioral Patterns Observer Strategy And Iterator
Graphical User Interfaces And Model View Controller Architecture
1:34:58 Architecture Of Desktop Graphical User Interfaces And Event Driven Programming
1:36:05 JavaFX Framework Lifecycle Of A JavaFX Application
1:37:17 Component Structure Stage Scene And The Scene Graph
1:38:28 Controls And Widgets Button Text Field List View Label And Menu Bar
1:39:37 Layouts And Containers Composite Structure GridPane VBox HBox And BorderPane
1:40:56 Event Processing Events And Event Handlers Set On Action
1:42:10 The Model View Controller Architecture Pattern
1:43:27 Data Binding Properties
1:44:46 Declarative Graphical User Interface Description
Software Testing And Unit Testing
1:46:03 Goals Of Software Testing
1:47:16 Classification In The Software Development Process
1:48:41 Testing Approaches Black Box Tests Versus White Box Tests
1:50:03 Unit Testing
1:51:22 Test Driver And System Under Test
1:52:33 Metrics Of Test Coverage
1:53:50 Branch Coverage
1:54:55 Path Coverage
1:56:09 Condition Coverage
1:57:26 Specification Based Testing
1:58:46 Application Programming Interface Documentation With Java Doc