
Jump into Java with a self-contained course that takes beginners to a Java developer through basics, object-oriented programming concepts, collections, multithreading, and a capstone project using industry best practices.
Discover Java as a high level language written in normal English and run across computers via the Java virtual machine, with advantages like easy to learn and platform independence.
Explore the disadvantages of Java, including performance limits of the JVM and memory management challenges. Tune memory usage with profiling and garbage collector adjustments to boost application performance.
Master Java basics by studying classes, public main methods, and file naming, then master variables, primitive and non-primitive data types, and control statements like if, switch, and loops.
Explore the Java program life cycle from source code to bytecode and machine execution. See how the Jdk and Jvm compile .java files into class files and enable platform independent.
Download the JDK from the Adopt Team Dot Net site and install the Windows MSI or ZIP package. Set JAVA_HOME and update PATH, then verify the installation with java -version.
Create a new fruit.java file, write a simple hello world program, then compile with javac and run with java to see the output.
Learn to build your first java program with a public class and a static main method, using the args array for command line input and print outputs like hello world.
Choose an integrated development environment to manage Java projects beyond notepad. Install community versions of intelligent and Eclipse or NetBeans to configure Java and Kotlin and start coding.
Create your first Java project in Eclipse, configure the JDK, write a main class with System.out println hello world, and run to view console output.
Organize Java concepts with packages and PascalCase class naming, master comments in Java. Learn single-line and multi-line comments, how they affect execution, and best practices for documenting methods and logic.
Learn how to apply Java naming conventions for packages, classes, interfaces, variables, and methods using camelCase and PascalCase, with lowercase package names and readable identifiers.
Learn Java naming conventions, including camel case for variables and methods, constants in uppercase, keywords, packages, and rules about underscores and starting characters.
Understand how variables use data types to store different materials, like apples, pencils, and shoes. Identify primitive and non primitive types, including integers, strings, booleans, and characters.
Learn to write Java programs using variables and data types, follow naming conventions, declare int variables, use the main method, and explore the assignment operator and Java operators.
Explore how operators in Java use symbols to perform operations on operands. Learn unary operators (one operand) and binary operators (two operands) and how they manipulate data.
Explore types of operators in Java, including unary, arithmetic, assignment, logical, shift, bitwise, ternary and relational operators, with the next video detailing each category.
Explore arithmetic operators in Java, including addition, subtraction, multiplication, division, and modulo, plus increment and decrement. Learn assignment and compound assignment operators like += and -=, with practical examples.
Explore Java comparison operators, including equal to, not equal, greater than, less than, greater than or equal to, and less than or equal to, alongside logical operators and, or, not.
Explore bitwise operators in Java, including bitwise and, or, xor, not, left and right shifts, and the ternary operator as a concise alternative to if-else.
Learn to declare and assign Java variables of various data types, perform operations with operators, and print results, including int, float, double, boolean, char, string, and long.
Learn how for loops in Java manage initialization, condition, and increment to print sequences from 1 to 101, generate odd numbers, and compute sums with practical examples.
Learn when to use the while loop in Java and master its structure—initialization, condition, and body—through examples that print numbers and can be adjusted to print odd or even values.
Learn the do while loop in Java, which executes its block at least once before evaluating the condition, unlike the while loop, with a practical printing example.
Explore Java conditional control with if and else, explore for and while loops, compare values with greater than, less than, and equals, and preview keyboard input for voting eligibility.
Explore how to implement if else if else in java to grade students based on total marks, using double values and range checks, and print the corresponding grade.
Capture user input from the keyboard in Java with the Scanner class and System.in to read doubles and strings, making your program dynamic.
Explore how to build a Java program that runs in a continuous loop, reads user input, applies conditions and operators, and uses print vs println to control output formatting.
Explore the ternary operator in Java as a shorthand for if-else, returning a value based on a condition.
Master the Java switch case control statement, including default and multiple cases, and use break to prevent fall through and to exit loops even in nested loops.
Define object oriented programming as using a class as a blueprint for attributes and behaviors. Create objects from the class, each with its own state and methods like get details.
Master the six core object oriented programming concepts: class, objects, inheritance, polymorphism, abstraction, and encapsulation, and see how they enable reusable, secure Java development.
Explore object oriented programming concepts through analogies, covering abstraction, encapsulation, polymorphism, and inheritance in Java, and learn how abstract classes, interfaces, and getters set security and reusability.
Learn how objects and classes define state and behavior, including color and model number, with inheritance, polymorphism (overriding and overloading), abstraction, and encapsulation, plus public and private members in Java.
Explore how Java stores objects and references in memory, contrasting heap versus stack under the JVM, and how new creates heap objects while references reside on the stack.
Learn practical java by building objects and classes, and defining instance variables. Test with a main class, use getters and setters, override toString, and note hashCode for object identity.
Explore polymorphism in Java, where a single functionality behaves differently across contexts. Learn static (compile-time) polymorphism via method overloading, and dynamic (runtime) polymorphism via method overriding in an inheritance hierarchy.
Explore polymorphism and method overloading in Java by implementing a single area method to calculate areas for different shapes, and learn compile time polymorphism through overloaded methods, with debugging tips.
Learn how constructors are special methods in Java whose name matches the class, have no return type, and can be a default or parameterized constructor, with overloading enabling multiple forms.
Explore constructor concepts in Java by comparing default and overloaded constructors, learn how the this keyword references the current object, and see parameterized constructors initialize state.
Define inheritance in Java, explain the is-a relationship between superclasses and subclasses, and show how single inheritance and the object class enable code reuse with super and overriding.
Explore inheritance with a vehicle superclass, bike and car subclasses, and the super keyword, along with dynamic polymorphism. Demonstrate method overriding, constructor calls, and runtime behavior.
Learn how to define and use inner classes in Java, creating an inner class inside an outer shape class, instantiate outer objects to access and call the inner class's methods.
Explore how the abstract keyword enables abstraction in Java by defining abstract and concrete methods. Build abstract classes and enable dynamic polymorphism through subclass implementations.
Explore abstraction in Java using abstract classes or interfaces, define abstract and concrete methods, and illustrate hierarchical inheritance and runtime polymorphism with employee examples.
Explore how arrays in Java store multiple data of the same type, including one- and multi-dimensional forms, with indexing from zero, square bracket syntax, and primitive versus object storage.
This hands-on lecture teaches Java arrays, including initialization, printing elements, iterating with loops, searching, removing elements, and handling found logic toward a mini project.
Practice building a mini project using arrays and user input in Java by creating an employee array, capturing IDs with a scanner, and printing them.
Learn how static in java applies to blocks, variables, and methods, including static blocks loaded at class startup and static variables shared by all objects via the class name.
explains static concept in Java, including static and non-static blocks, static variables and methods, constructors, and how execution order and debugging reveal behavior.
Discover how the final keyword in Java locks variables, methods, and classes, forcing initialization of final variables and preventing reassignment, overriding, and inheritance.
Explore the final keyword in Java by testing final in packages, classes, methods, and variables; learn that final prevents inheritance and overriding, and treats final variables as constants.
Learn how interfaces serve as blueprints enforcing methods for implementing classes. See how Java enables multiple inheritance via interfaces and supports dynamic polymorphism with interface references.
Explore how Java interfaces enable multiple inheritance and dynamic polymorphism by defining abstract methods and constants. See Tiger implement Animal and test via a main method.
Java introduces wrapper classes to convert primitives into objects, enabling autoboxing and unboxing. Learn parsing between strings and numbers and default null values for class types.
Practice hands-on with wrapper classes, autoboxing and unboxing in Java, including parsing strings to int, double, and long, using main methods, and exploring default values in classes.
Discover how Java strings represent sequences of characters, the literal versus new object distinction, UTF-16 encoding, and key methods like length, substring, indexOf, equals, and trim.
Explore java string handling, including reference vs value equality, equals semantics, string literals vs new objects, and interning, plus substring, indexOf, startsWith, endsWith, and trim.
Master string builder in Java to perform efficient string concatenation with append, insert, reverse, delete, and replace, while exploring memory usage and equals methods.
Explore how the string compareTo method works in java through hands-on practice, comparing string literals and observing positive, negative, and zero results to understand ordering and equality.
Understand Java access modifiers, including public, private, protected, and default, and how they control the accessibility of classes, data members, and methods within packages and across inheritance.
Explore Java access modifiers—private, default, protected, and public—through creating packages and classes (animal, cat, lion, tiger) and exploring inheritance, imports, and access from different packages.
Discover the Java collection framework, including sets, lists, and maps, and how they manage uniqueness, order, and key-value storage; learn synchronization basics.
Explore hands-on with a raw ArrayList of mixed datatype elements, print values, examine data types, and learn how generics restrict a list to a specific type in Java.
Learn to apply generics in Java by creating a typed ArrayList, enforcing data types, and printing contents with an enhanced for loop, extending the concept to set, map, and queue.
Create an employee class with private fields and a constructor, generate getters, and manage employees in an ArrayList to demonstrate dynamic polymorphism, iteration, and printing.
Explore essential ArrayList methods in Java, including add, get, set, remove, contains, isEmpty, and size, and see dynamic polymorphism with List and LinkedList through practical fruit examples.
learn how a set rejects duplicates and does not preserve insertion order. explore a sorted set that sorts in natural ascending order and disallows null values.
Explore hands-on in Java maps: define key/value types, store and retrieve entries, iterate with entry sets, and nest maps and lists to hold complex objects like employees.
Explore how Java handles exceptions to maintain normal program flow, differentiate checked and unchecked exceptions from errors, and implement custom exceptions using try-catch-finally patterns.
Practice exception handling by building a simple arithmetic calculator that throws an arithmetic exception on division by zero and handles it to gracefully continue program flow.
Explore a hands-on Java example of null pointer exception handling, showing how to avoid runtime errors with null checks and proper exception handling, and understand exception messages.
See a Java array example that triggers an index out of bounds exception and prints elements until the error occurs. Learn how exception handling lets the program continue running.
Learn how the finally block guarantees code execution for cleanup tasks, regardless of exceptions, and why you should close database or file connections to prevent resource leaks.
Explore finally blocks in exception handling through a hands-on Java example. See how the finally block executes with or without exceptions, and how return and system.exit affect it.
Explore how finally blocks guarantee cleanup in exception handling, with a TRICARE example and code illustrating try, catch, and finally. Practice writing and commenting to reinforce understanding.
Learn to design and throw custom exceptions in Java, implement business logic validation, handle checked exceptions, and understand exception propagation across layers.
This lecture covers multithreading in Java, showing how lightweight threads run parallel tasks like graphics and audio, share memory, have separate stacks, and follow a lifecycle from new to terminated.
Explore two ways to create threads in Java—extending Thread and implementing Runnable—covering run and start methods, thread lifecycles, separate call stacks, and parallel execution.
Learn how thread synchronization in Java prevents race conditions by locking shared resources, using synchronized methods and blocks to ensure consistent balances across multithreaded operations.
Understand how the Java garbage collector, a background demon thread, frees heap memory by removing unreachable objects and how to trigger it with System.gc() or Runtime.getRuntime().gc().
Hands-on with Java threads guides creating classes, extending threads or implementing interfaces, starting and naming threads, testing with main methods, and observing OS scheduling and simple debugging.
Learn file handling in java using the java.io file class to read and write data, create and delete files, and work with byte and character streams.
Create a new text file in Java using the File class, handle IO exceptions, and verify file creation with both absolute and project-level paths.
Learn to write data to a text file in Java, manage scope and exceptions with try, catch, and finally, and ensure the file closes for persistence.
learn to read data from a file in Java using a file object and scanner, printing line by line and closing the stream after reading to avoid exceptions.
Read file information in Java by using file methods to obtain name and size, create objects, call methods, and observe how a file’s byte size changes when you add data.
Explore how Java serialization converts an object's non-static state to bytes, stores it in files or databases, and deserializes it back, with marker interfaces and the serial version UID.
Create a serializable Java product class, write objects to a file with object output stream, and read them back with object input stream to reconstruct the object.
This course is developed for complete beginners who want to learn Java Programming concepts and get started with Programming with Java. In this course, every concept is explained with examples and notes and the concept is also explained via Handson Program with comments alongside the code explaining the concept.
This course also has a Real World Project that helps you combine all the concepts that you have learned and teaches you how to apply those concepts to a project. Along with code, you will learn to debug and also learn lots of best practices that you should follow while developing Industry grade projects.
You will get notes with documents explaining all concepts along with that you will also get source code for Handson Programs and the Real World Project.
Following are the topics covered in the course:
Introduction and Advantages of Java
Disadvantages of Java
Basics of Java Programming Language
Java Life Cycle
Downloading and Installing Java
Writing , Compiling and Running our First Java Program
Understanding our First Java Program
Downloading and Installing IDE
Creating first java project in IDE
Comments in Java
Naming Convention Part-1
Naming Convention Part-2
Variable and Data Types in Java
Playing around with data Type Variables and Operators
Using For Loop in Java
Using While Loop in Java
Using do While Loop in Java
If and If Else in Java
If ElseIf Else in java
Taking User Input from Keyboard
Making Java Program to keep running
TernaryOperator in Java
Switch Case and Break in Java
Understanding Object Oriented Programming
Understanding OOPS Concept Continued
OOPS Concept Analogy
Understanding OOPS Concepts with Real World Examples
Object and Reference vs Heap and Stack
Working with Object and Classes
Understanding concept of Polymorphism, Static and Dynamic Polymorphism
Polymorphism, Method Overloading, Debugging
What are Constructors
Constructor Overloading, this keyword
Understanding concept of Inheritance in Java
Inheritance, super keyword, Dynamic Polymorphism
Inner Class and Object of Inner class in Java
Undertsanding abstract class and abstraction in Java
Handson examples of Abstraction and Abstract class in Java
Understanding Arrays in Java
Handson with Array Examples
Mini Project with Array
Concept of Static in Java
Handson and Debugging for Static concept in Java
Concept of Final in Java
Handson with Final keyword in java
Concept of Interface and Multiple Inheritance in Java
Handon and Debugging for Interface and Multiple Inheritance in Java
Concept of Wrapper Class, Autoboxing and Unboxing
Handson Examples for Wrapper class, Autoboxing and Unboxing
Concept Of String and its methods in Java
Handson with String and String Functions
Handson with StringBuilder and its Functions
Handson with CompareTo method in String
Concept of Access Modifiers in Java
Handson with Accessmodifiers
Concept of Collection Framework in Java
Handson with Raw ArrayList with Mixed Datatype elements
Handson with Generics based ArrayList
Handson with Custom Class and ArrayList
Handson with ArrayList methods
Handson with Set and Hashset in Collection Framework
Handson with Map and its Uses
Concept of Exception Handling in Java
Handson with ArithmaticException handling
Handson with NullPointerException handling
Handson with ArrayIndexOutOfBoundException handling
Concept of Finally Block in Exception handling
Handson with Finally Block in Exception Handling - part-1
Handson with Finally Block in Exception Handling - part-2
Handson with Custom Exception handling
What is Thread and Thread Life Cycle
Different ways of creating Thread in Java
Thread Synchronization in Java
Garbage Collector and Garbage Collection mechanism in Java
Handson with Threads in java
Concept of File and File Handling in Java
Handson Program to Create new File using Java
Handson Program to Write Data to a Text File using Java and Scope elevation
Reading Data from File using Java and Printing in Java
Getting all information of a file like file size etc
Concept of Marker Interface Serialization Deserialization Transient in Java
Handson program to Serialize and Deserialize Object in Java
Project Overview
Create Java Project for Bookstore App
Sequence Diagram Explanation
Class Diagram Explanation
Creating all the required packages
Creating the Book DTO and Entity classes
Creating Repository Interface and Implementation layer for Book
Creating Service layer Interface and Implementation layer for Book
Creating Controller layer and Test Client class for Book
Integrate Book Client with Controller and Service layer
Learn to Debug the code by navigating through what we have build so far
Integrate Repository & Converter layer for Book by using Adapter Design pattern
Save the Book Entity in a list inside Repository
Serialize and save Book Entity in file
Write Deserialization logic to get the Book Entity object from the saved file
Get Book Detail and Deserialize Object and Debugging
Source Code