Module One: Introduction to Java
- Overview of Java programming and its ecosystem
- Object-oriented principles: classes, objects, inheritance, encapsulation
- Working with Java APIs and keywords
- Understanding Java syntax, naming conventions, and compiling/executing programs
Module Two: Primitive types, operators, and flow control statements
- Java primitives, operators, and flow control structures
- Using JShell (REPL tool) for interactive testing
- Control flow with if/else, switch, and ternary operators
Module Three: Text, date, time, and numeric objects
- String manipulation, indexing, and text blocks
- Handling dates and times with the Local Date-Time API
- Using BigDecimal for precise numeric operations
Module Four: Classes and objects
- Introduction to UML and modelling classes
- Designing and creating classes and objects
- Using IntelliJ IDE for Java development
Module Five: Improved class design
- Method overloading, constructors, and encapsulation
- Immutable classes and the use of enumerations
- Memory allocation and parameter passing in Java
Module Six: Implement inheritance and use records
- Inheritance and polymorphism basics
- Abstract classes, final classes, and sealed classes
- Understanding Java records and pattern matching
Module Seven: Interfaces and generics
- Implementing interfaces and generics for type safety
- Working with functional interfaces and lambda expressions
- Examples with Comparable, Comparator, and Cloneable interfaces
Module Eight: Arrays and loops
- Declaring, initializing, and managing arrays
- Iterating over arrays with various loop structures
- Advanced loop control: nested loops, break, and continue
Module Nine: Collections
- Java Collection API: Lists, Sets, Deques, and Maps
- Managing collection contents and concurrent collections
- Introduction to legacy collection classes
Module Ten: Nested classes and lambda expressions
- Types of nested classes: static, inner, local, and anonymous
- Lambda expressions and method references
- Default and static methods in functional interfaces
Module Eleven: Java Streams API
- Stream API and functional processing with streams
- Filtering, mapping, and reducing data in streams
- Parallel stream processing and performance considerations
Module Twelve: Exception handling, logging, and debugging
- Java exception handling and custom exceptions
- Using the Java Logging API for error tracking
- Debugging techniques and using assertions
Module Thirteen: Java IO API
- Reading and writing binary and character data
- Working with files and file systems
- Serialization and handling sensitive information
Module Fourteen: Java concurrency and multithreading
- Concurrency fundamentals and thread management
- Working with the Executor Service for concurrent tasks
- Locking mechanisms and ensuring thread safety
Module Fifteen: Modules and deployment
- Modular programming in Java
- Compiling, packaging, and deploying Java applications
- Creating custom runtime images for Java applications
Module Sixteen: Advanced topics and specialisations
- Java database connectivity (JDBC) and SQL integration
- Java security essentials and best practices
- Patterns for advanced generics and cloud deployment with Oracle