
Begin learning Java programming by exploring the basics: create a project, write simple classes, work with objects, control statements, and basic object oriented programming structure.
Install Java 8 JDK and the Eclipse IDE, then optionally install MySQL tools for database programming, and configure Eclipse to point to your installed Java.
Learn to create a simple Eclipse project, set up a workspace for Java eight to thirteen, configure the execution environment, and manage dependencies via repository.com.
Create a class within a package, declare a public static void main entry point, and write a simple output to understand how Java programs execute from main.
Explore Java fundamentals, including primitive data types, variables, control statements like if, switch, and loops, and introduce arrays and basic syntax for declaring and manipulating data.
Explore how to create objects from a class, understand object instantiation and memory layout (heap and stack), and explore references, garbage collection, and static variables and methods.
Understand how constructors initialize object data in Java, including default constructors, parameterized constructors, and how new objects invoke initialization.
Explore how the this keyword refers to the current object and enables constructor chaining by calling other constructors, reducing ambiguity in an employee class with default and parameterized constructors.
Learn how Java garbage collection automatically frees memory by identifying unreachable objects on the heap through marking and sweeping, with optional forcing via System.gc or Runtime.gc.
Explore the four pillars of object oriented programming—abstraction, encapsulation, inheritance, and polymorphism—and see how abstract classes and private data drive reusable design.
Explore encapsulation in object-oriented programming by building a triangle class with base and height, showing how proper data hiding and access via methods protects data.
Learn how getters and setters enforce encapsulation by exposing private data through public methods, and decide when to provide read-only or read-write access for class fields.
Explore inheritance in object-oriented programming, showing is-a and has-a relationships with Animal as a superclass and Dog extending it, reusing Animal methods like eat, talk, and breeding.
Explore how inheritance lets a dog extend a generic animal class and override methods like eat and talk to customize behavior, illustrating how specific traits differentiate dogs from cats.
Explore constructor chaining in Java inheritance, showing how a subclass constructor calls the superclass constructor before executing. Learn how default and parameterized superclass constructors influence object creation and error handling.
Learn how polymorphic references control subclass behavior in inheritance, enable safe downcasting, and call subclass methods via a superclass reference using the instance of operator.
Explore concrete vs abstract classes, why abstract methods enforce implementations, and how interfaces enable multiple inheritance; learn how to declare, implement, and extend interfaces in Java eight.
Explore has-a kind of relationship (composition) in Java by showing how an employee can contain a date object to reuse business logic and avoid duplication.
Explore how Java 8 introduces default methods and static methods in interfaces, with practical examples like a display interface and handling multiple interfaces.
Understand the object class as the root of all Java classes, and learn how to override equals and hashCode, and customize string representations with toString.
Explore the string class, immutability, and string pool, then compare string builder and string buffer, covering object creation, equals behavior, and synchronized versus non-synchronized performance aspects.
Understand wrappers in Java as object counterparts to primitives, learn boxing and unboxing, and see how wrapper types like Integer enable use in collections and with operators.
Learn how enums represent a fixed set of constants as objects with business logic. See how coffee sizes can be modeled as enum constants carrying data and behavior.
Explore Java date and time APIs, including local date, next Sunday via temporal adjustments, instant timestamps across time zones, and durations or periods for date arithmetic.
Explore exception handling in Java, including the exception hierarchy, types of exceptions (checked and unchecked), and the core keywords try, catch, finally, plus using throws and defining custom exceptions.
Learn to handle exceptions with try-catch in Java, preventing abrupt termination. Catch specific exceptions, print stack traces, and maintain program flow.
Explore handling multiple exceptions in Java with try blocks, specific runtime exceptions, cascading catch blocks, and a generic exception to ensure robust error reporting.
Explore updates in exception handling in Java seven, including a single multi-catch block and automatic resource management with try-with-resources.
Explore the Java collection framework, understanding what a collection is and how list, queue, and set differ. Examine common implementations and how order and uniqueness shape their use.
Explore ArrayList basics by implementing generic lists in Java, adding strings and objects, and using methods like add, addAll, index, printing, and clear to manage collections while preserving order.
show how to use ArrayList to store user defined employee objects, create a list, add elements, override toString for readable output, and iterate with for-each and iterator.
Explain how HashSet uses hash codes and equals to ensure uniqueness and handle duplicates. Compare it to lists, note the unordered storage, and observe how duplicates are detected.
Learn how TreeSet ensures unique employee objects and sorts them via comparable by first name in ascending order, while last name sorting in descending order shows its single natural ordering.
Explore lambda expressions in Java to replace verbose anonymous inner classes, improving readability and flexibility when processing lists with functional interfaces and a consumer.
Learn how functional interfaces with a single method enable data processing in java, exploring consumer, supplier, and predicate patterns, with practical examples and uppercase transformation.
Explore default methods in Java eight interfaces and how lambdas enable more flexible, maintainable code. Understand functional interfaces and streams, and how interfaces evolve with Java eight compatibility.
Learn how to declare and use static methods inside a Java interface, enabling a shared implementation across all implementing classes. Call these methods through the interface reference for consistent behavior.
Explore lambda basics by implementing interfaces with anonymous classes and lambda expressions, focusing on functional interfaces with a single method and how to pass lambdas as parameters.
Learn how to use lambda expressions and a functional interface to connect lambdas with custom objects, implement a display method, and create an anonymous class for conditional logic.
Explore functional interfaces in Java 8, including the consumer interface, and see how lambdas connect single-method interfaces to operations like printing and totaling student data.
Explore the function functional interface, which accepts one argument and produces a result, using lambdas to process a list of students into percentages and print results via a consumer.
Explore the functional interface, which takes two argument types and returns a value via the apply method. Declare argument types, implement apply, and see how function1 and function2 are composed.
Explore java functional interfaces with supplier and predicate examples, showing how to supply data, convert types, and filter employee lists.
Discover how to create, read, and write files in Java, manage file presence, and handle i/o streams and exceptions with practical examples.
Learn how the BufferedReader enables line-based data retrieval from a file, improving performance over character-by-character reads by layering a file input stream with a PrintWriter for output.
Learn how to use the BufferedWriter object in Java by creating and initializing a writer, writing characters or strings to a file, and closing the data stream properly.
Explore how to read user input in Java using the Scanner class and System.in. Learn about nextLine and other data-type handling, and compare console input via System.console.
Explore the new input output API to work with paths and files, locate files using path references, inspect absolute paths and filenames, and create files with the Files class.
Explore reading all lines from a file using Java NIO Files, copy a source to a target, move files, and delete files with Java NIO file operations.
Explore how to use channels and file channels with buffers to copy data between locations, read and write data, and apply random access file locks for safe concurrent access.
Explore Java buffers: allocate memory, put data, flip to read, track position, slice from current to limit, and print sliced values, with examples using 3–6 and their 11x results.
Learn the need and architecture of JDBC and how Java apps connect to a MySQL database, executing SQL statements to insert and retrieve data from tables like employee.
Explore how a Java application uses a database driver and the driver manager to connect, send SQL, and process results, while managing credentials and connection details.
Learn to read from and write to a database in Java by establishing a connection, using statement types (statement, prepared, and callable), executing queries, and handling results with a ResultSet.
Explore prepared statements as precompiled queries, bind variable values, and boost performance; also learn to create and use database procedures to encapsulate logic for employee data.
Explore ResultSet metadata and database metadata to reveal column names, data types, and table details, enabling you to inspect database structures through metadata interfaces.
Master transaction management in Java by using commits, rollbacks, and exception handling to ensure changes reflect permanently only when conditions succeed.
Explore the basics of Java programming structure and threads, detailing multitasking and multiprocessing, how threads run concurrently, and how Java classes enable parallel task execution.
Learn how threads execute tasks, manage memory and sequencing, and how to create them by extending a thread class or implementing Runnable in Java.
Explore life cycle of a thread from creation and start to blocking and sleeping, for parallel tasks like salary calculation, printing, and mailing slips, and learn how priorities guide scheduling.
Learn how to coordinate access to shared data with synchronization using Java, preventing concurrent modification by multiple threads through synchronized methods and blocks.
Create an executor service via a factory method, submit tasks in a for loop from zero to nine, and see how interfaces and implementations drive the fixed-rate workflow.
Explore java's concurrent hash map and concurrent map interfaces, their segment locking mechanisms, and how thread-safe operations prevent concurrent modification while updating keys.
Learn how to convert a sequential stream to a parallel stream, leverage multicore processors, and improve performance with Java's parallel stream APIs.
Learning Java is always a challenging task if the proper resources are not provided. This is extensive Java course with 100+ videos. The course not only covers the basics of programming and oops, but it also covers the advance features of Java like concurrency, jdbc, IO/NIO etc. It is infact a journey from beginner to expert for the student. So, even if you are new to Java or have some prior knowledge, this course is for YOU.
During this course I have covered :
Basics of Java Programming
Important concepts of OOPs like Inheritance, Polymorphism and Encapsulation etc.
Collections, Concurrency, and also concurrent APIs in Java
In detail study of handling exceptions
New features from Java8 like Lambdas, Functional Interfaces, Streams.
Complete shift of Java project infrastructure, where package-centric applications, no replaced by Modules in Java 9
New Features in Java 9,10
Modified swith-case blocks from Java 12 and Java 13
Many more features from versions 8.0 to 13.0 of Java
After completing this course, you will certainly able to write the code in Java, also you will able to use the new features introduced in the later versions of Java like lambdas, streams and functional interfaces etc.