Advanced JAVA

Focuses on creating large-scale applications using features like multithreading, databases, and web technologies.



2 Months Duration

₹ 1,999

Syllabus


Module 1: Advanced Object-Oriented Programming (OOP) Concepts in Java

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)



Module 2: Concurrency and Multi-Threading

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



Module 3: Java I/O and NIO (New I/O)

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



Module 4: Java Networking

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



Module 5: Java Collections Framework and Stream API

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



Module 6: Java Design Patterns

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



Module 7: Java GUI Development with JavaFX

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



Module 8: Java Performance and JVM Internals

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

₹ 1,999