Focuses on creating large-scale applications using features like multithreading, databases, and web technologies.
2 Months Duration
Advanced inheritance (multiple inheritance through interfaces, abstract classes)
Inner classes, anonymous classes, and lambda expressions
Method overriding, dynamic method dispatch
Constructor chaining and initialization blocks
Final keyword and its use cases (final classes, final methods, final variables)
Implementing polymorphism with interfaces and abstract classes
Practical examples using lambda expressions
Creating custom data structures using inner and anonymous classes
Generics and type bounds
Wildcards in generics
Enums and EnumMap
Varargs (variable-length arguments)
Annotations and Reflection API
Implementing generic methods and classes
Using annotations for metadata-driven development
Reflection-based tasks (e.g., inspecting class details at runtime)
Basics of multi-threading in Java
Thread lifecycle and thread states
Creating threads using Thread class and Runnable interface
Thread synchronization and race conditions
Executors framework and thread pools
Implementing multithreaded applications using Thread and Runnable
Demonstrating thread synchronization to avoid race conditions
Using ExecutorService to manage a pool of threads
volatile keyword and memory visibility
Locks and ReentrantLock
Deadlock, starvation, and livelock
Concurrent collections (ConcurrentHashMap, CopyOnWriteArrayList)
Fork/Join framework for parallelism
Implementing thread-safe collections and custom locks
Solving deadlock and concurrency issues using practical examples
Parallel computation using Fork/Join framework
File handling using File, FileReader, FileWriter, BufferedReader, and BufferedWriter
Serialization and deserialization
Object streams and externalizable interface
File manipulation (read, write, append) with proper exception handling
Creating and reading serialized objects
Introduction to NIO (Java 7 and beyond)
FileChannels, ByteBuffers, and MappedByteBuffers
NIO Selector for non-blocking I/O
Asynchronous I/O (Java NIO 2.0 and AsynchronousFileChannel)
Path and Files API for working with file systems
Implementing non-blocking I/O using Selectors and Channels
Writing asynchronous file operations
Introduction to Java networking (sockets, TCP/IP, UDP)
Creating a basic client-server application
URL handling and HTTP communication
Working with URLConnection, HttpURLConnection
Multithreaded server design
Implementing a simple client-server communication using TCP sockets
Building a basic web scraper using URLConnection and HTTP methods
Developing a multi-threaded server application
Java RMI (Remote Method Invocation)
WebSockets and their use in real-time applications
RESTful Web Services (JAX-RS, Spring Boot integration)
Secure Socket Layer (SSL) and encryption with Java
Developing a simple RMI-based application
Creating a WebSocket-based chat application
Building and testing a RESTful API in Java
Overview of the Java Collections Framework
Lists, Sets, Maps, and Queues in detail
Comparison and performance characteristics of different collection types
Custom collections and understanding Comparable and Comparator
Implementing custom collections
Performance benchmarking of different collection types
Introduction to Java 8 Stream API
Stream operations: filter, map, reduce, forEach, etc.
Parallel streams and performance considerations
Optional class and its usage in avoiding NullPointerException
Functional interfaces and method references
Using Stream API to process collections and files
Implementing parallel streams to process large datasets
Overview of design patterns in Java
Creational patterns: Singleton, Factory Method, Abstract Factory, Builder
Structural patterns: Adapter, Decorator, Proxy, Composite
Behavioral patterns: Strategy, Observer, Command, Template Method
Implementing various design patterns in real-world applications
Refactoring code to follow design pattern principles
Introduction to JavaFX and its components
SceneGraph, stages, and scenes
Event handling in JavaFX
JavaFX layout managers: VBox, HBox, GridPane, etc.
JavaFX controls: Buttons, TextFields, ComboBoxes, Tables
Building a basic desktop application with JavaFX
Event-driven programming with JavaFX (handling user interactions)
JavaFX animations and effects
Binding properties in JavaFX
Building custom controls
JavaFX integration with databases (JDBC, JavaFX Data Binding)
Creating a dynamic application with animations and effects
Integrating a JavaFX application with a database
JVM internals: ClassLoader, Memory Model, Garbage Collection
Memory management in Java (Heap, Stack, Metaspace)
Profiling tools: JVisualVM, JConsole
JVM options for performance optimization
Profiling and analyzing Java applications
Optimizing a Java application based on performance profiling
Understanding Garbage Collection algorithms (Mark-Sweep, G1, CMS)
Memory leaks and how to detect them
JVM tuning and configuration for production environments
Just-in-Time (JIT) compilation and its impact on performance
Analyzing JVM garbage collection logs
Tuning garbage collection for performance improvements
2 Months Duration
