Table of Contents - Core Java Training
Instructor: Bobby Malik | Duration: 2h | Level: Beginner
1. Getting Started
a) Computer Fundamentals – quick review
b) Program, memory and processor
c) Types of programs
d) Learn the Essentials of Java 17
e) Exercise Files
f) VS Code Tour
2. Java Fundamentals
a) Reserved Words
3. Variables and Data Types
a) Creating Variables
b) Primitive Data Types
c) Local Variable Type Inference
d) Naming Variables
e) Modifying Variables
f) Arithmetic Operators
4. Conditional Logic
a) If Statements
b) If-Else Statements
c) If-Else-If Statements
d) Switch Statements
e) Switch Expressions
f) Relational Operators
g) Logical Operators
i. Short Circuit Logic
5. Objects and Object-Oriented Programming
a) Defining Classes for Objects
b) Constructors
c) Instantiating Objects
d) Objects as Method Parameters
e) Objects as Method Return Types
f) Wrapper Classes
g) Records
6. Methods
a) Introduction to Methods - Method Names and rules
b) What Is a Method?
c) Why Use Methods? Code Reuse and Organization
d) Anatomy of a Method
e) Method Declaration Syntax
f) Calling or Invoking a Method
g) Method Components
i. Access Modifiers: public, private, protected, Default
ii. Optional Modifiers: static, final, abstract, synchronized
iii. Return Types
iv. void Methods
v. Method Names and Naming Conventions
vi. Parameter List
vii. Method Body
viii. Method Signature
h) Working with Parameters
i. Parameters vs. Arguments
ii. Passing Primitive Values
iii. Passing Objects
iv. Pass-by-Value in Java
v. Multiple Parameters
vi. Varargs: Variable-Length Arguments
vii. Default Parameter Alternatives Through Overloading
i) Return Values
i. Returning Primitive Values
ii. Returning Objects
iii. Returning Collections
iv. Returning Arrays
v. The return Statement
vi. Early Returns
vii. Methods That Return Multiple Values Using Objects or Records
j) Method Overloading
i. What Is Method Overloading?
ii. Overloading by Number of Parameters
iii. Overloading by Parameter Type
iv. Overloading by Parameter Order
v. Why Return Type Alone Is Not Enough
vi. Ambiguous Overloads and Common Errors
vii. Compile-Time Polymorphism
k) Static Methods
i. What Is a static Method?
ii. Static Methods vs. Instance Methods
iii. Calling Static Methods Without Creating an Object
iv. Static Utility Methods
v. Limitations of Static Methods
l) Scope and Variables
i. Local Variables
ii. Method Parameters and Scope
iii. Instance Variables vs. Local Variables
iv. Variable Shadowing
v. Lifetime of Variables
m) Recursion
i. What Is Recursion?
ii. Base Case and Recursive Case
iii. Recursive Methods
iv. Recursion vs. Iteration
v. Stack Overflow and Recursion Depth
n) Exception Handling in Methods
i. Throwing Exceptions with throw
ii. Declaring Exceptions with throws
iii. Checked vs. Unchecked Exceptions
iv. Handling Exceptions with try-catch
v. Best Practices for Method-Level Error Handling
o) Method Design Best Practices
i. Single Responsibility Principle
ii. Meaningful Method Names
iii. Keeping Methods Small
iv. Avoiding Too Many Parameters
v. Using Objects or Records for Complex Inputs
vi. Documenting Methods with Javadoc
vii. Unit Testing Methods
7. Collections framework
a) Java Collections – An Introduction
i. Solving Everyday Problems with Data
ii. Data Structures
iii. Java Collections Framework
iv. Collections Framework Architecture
b) Collections Fundamentals
i. Interfaces
ii. Collection Types
iii. The Collection Interface
iv. Collection Methods
v. Creating a Collection
vi. Generic Typing
vii. Object Comparison
viii. The equals Method
c) Lists
i. List Interface
ii. Working with Lists
d) Sets
i. Set Interface
ii. Working with Sets
e) Queues and Deques
i. Deque Interface
ii. Working with Queues and Deques
f) Maps
i. Map Interface
ii. Map Methods
iii. How a HashMap Works
iv. Working with Maps
g) Iterating Collections
i. Iterating Collection Elements
ii. Accessing Collection Elements with Iterators
iii. Modifying Collections While Iterating
h) Streams and Functional Programming
i. Accessing Collection Elements with Streams
ii. Lambda Expressions
iii. Stream Operations
8. Inheritance
a) Inheritance in Java – literal meaning
b) Inheritance Between Classes
c) Constructors in Inheritance
d) Overriding and Overloading Inherited Methods
e) Chain of Inheritance
f) Limiting Access in Inheritance
g) Sealed Classes
9. Polymorphism
a) Polymorphism Concepts and Implementation
b) Related Functional Operators and Techniques
10. Abstraction and Interfaces
a) Abstract Classes and Methods
b) Interfaces
c) Implementing and Using Interfaces
11. Exception Handling
a) Try and Catch Blocks
b) Stack Trace and Exception Message
c) Checked vs. Unchecked Exceptions
d) Handling Multiple Exceptions
e) Finally Block
f) Try with Resources
g) Throwing Exceptions
h) Rethrowing Exceptions
i) Code Solution: Unauthorized User
12. Memory and Error Prevention
a) Resolving Errors
b) Preventing Memory Leaks
13. Practice and Wrap-Up
a) Code Solution: Orchestra Concert
b) Code Solution: Shirt Product