Java Developer Training
Basics of Java Programming(Brief Refresher)
Overview of the Java Ecosystem
Basic Syntax and Data Types
Control Structures: If-Else, Loops, Switch
Func ons and Methods in Java
Classes, Objects, and Constructors
Inheritance and Polymorphism
Encapsula on and Abstrac on
Interfaces and Abstract Classes
Comparison Between C++ and Java
Key Differences Between C++ and Java
Memory Management: Manual vs. Automa c
Object-Oriented Programming: Similari es and Differences
Comparing Data Structures in C++ and Java
Memory Management and Garbage Collec on
Basics of Java Memory Management
Java's Memory Model: Heap and Stack
Components of the JVM Memory
Garbage Collec on in Java
Introduc on to Garbage Collec on
Types of Garbage Collectors: Serial, Parallel, CMS, G1
Garbage Collec on Algorithms
How Garbage Collec on Works
Genera onal Garbage Collec on
Tuning Garbage Collec on
Understanding Garbage Collec on Metrics
JVM Flags for GC Tuning
Analyzing Garbage Collec on Logs
Threads and Concurrency in Java
Basics of Java Threads
What is a Thread?
Crea ng Threads: Thread Class vs. Runnable Interface
Thread Lifecycle and Management
Thread States: New, Runnable, Blocked, Wai ng, Timed Wai ng,
Terminated
Star ng and Joining Threads
Understanding Mul threading
Crea ng and Managing Threads
Synchroniza on and Locks
Concurrency Best Prac ces
Java Collec ons Framework
Overview and Importance of Collec ons
Core Interfaces: List, Set, Map, Queue
Implementa ons: ArrayList, LinkedList
When to Use Each Implementa on
List Itera on Techniques
Implementa ons: HashSet, LinkedHashSet, TreeSet
Characteris cs of Different Set Implementa ons
Choosing the Right Set for Your Use Case
Implementa ons: HashMap, LinkedHashMap, TreeMap
Keys and Values in Maps
Itera on Over Maps
Implementa ons: LinkedList, PriorityQueue, ArrayDeque
Differences Between FIFO and Priority-Based Queues
Use Cases for Different Queue Types
Common Collec on Opera ons
Sor ng and Searching within Collec ons
Filtering and Transforming with Streams
Using Comparator and Comparable Interfaces
Generics in Collec ons
Understanding Generics in Java
Benefits of Using Generics with Collec ons
Common Generic Pa erns and Restric ons
Tools for Java Development
Integrated Development Environments (IDEs): IntelliJ, Eclipse, NetBeans,
VSCode
Build Tools: Maven and Gradle
Version Control Systems: Git
Other Useful Tools (e.g., Sta c Analysis Tools, Profiling Tools)
JVM Internals
Java Virtual Machine (JVM) Basics
Class Loading and Bytecode
Just-In-Time (JIT) Compila on
JVM Flags and Tuning
Code Review and Best Prac ces
Importance of Code Reviews
Conduc ng Effec ve Code Reviews
Common Code Review Mistakes to Avoid
Tools for Code Review and Collabora on
Introduc on to JUnit
Overview of Unit Tes ng
Se ng Up JUnit in a Java Project
Wri ng Unit Tests with JUnit
Crea ng Test Classes and Test Methods
Using Annota ons: @Test, @BeforeEach, @A erEach
Asser ons in JUnit: assertEquals, assertTrue, etc.
Tes ng Techniques with JUnit
Parameterized Tests
Excep on Tes ng with @Test(expected = Excep [Link])
Nested Tests with @Nested
Advanced JUnit Concepts
Lifecycle Management with @BeforeAll and @A erAll
Using Test Suites to Group Tests
Condi onal Test Execu on with @EnabledIf and Similar Annota ons
Introduc on to Mockito
What is Mockito?
Importance of Mocking in Unit Tes ng
Se ng Up Mockito in a Java Project
Mocking with Mockito
Crea ng Mocks with [Link]()
Mocking Method Calls with [Link]()
Using [Link]() to Verify Interac ons
Mockito Advanced Techniques
Argument Matchers with [Link](), [Link](), etc.
Mocking Sta c Methods with [Link] c()
Spying on Real Objects with [Link]()
Performance Tuning and Profiling in Java
Iden fying Performance Bo lenecks
Profiling Tools and Techniques
Basic Performance Tuning Strategies
JVM Flags for Performance Op miza on
Introduc on to Spring Boot
What is Spring Boot?
History and Evolu on of Spring Framework
Benefits of Using Spring Boot
Se ng Up a Spring Boot Project
Crea ng a Spring Boot Project
Maven and Gradle for Spring Boot Projects
Project Structure and Configura on
Core Spring Boot Components
Main Applica on Class and @SpringBootApplica on
Auto-Configura on and Spring Boot Starters
Applica on Proper es and Configura on
Dependency Injec on and Beans
Basics of Dependency Injec on
Defining Beans with @Bean and Component Scanning
Scope of Beans: Singleton, Prototype, etc.
Spring Boot with RESTful APIs
Crea ng REST Controllers with @RestController
Handling HTTP Requests: @GetMapping, @PostMapping, etc.
Data Serializa on and Deserializa on with Jackson
Data Persistence in Spring Boot
Introduc on to Spring Data JPA
Configuring Data Sources and En ty Rela onships
Working with Repositories and Custom Queries
Security in Spring Boot
Introduc on to Spring Security
Configuring Basic Security Se ngs
Authen ca on and Authoriza on with Spring Security
Advanced Spring Boot Topics
Asynchronous Processing with @Async
Building Event-Driven Applica ons with Spring Boot
Using Spring Boot with Microservices Architectures