
Explore Java programming from basics to advanced topics, including history, the compiler, and core OOP concepts such as classes, objects, and polymorphism. Learn exceptions, strings, and the collection framework.
Explore the history of Java—from Sun Microsystems' 1995 introduction and the Oak project to the Java virtual machine, cross-platform design, and the move to open source under GPL.
Explain the differences between the JDK, JRE, and JVM. The JVM runs Java bytecode as a virtual machine; the JRE provides runtime; the JDK adds development tools and libraries.
Understand how compilers translate high-level code into bytecode and how the Java just-in-time compiler optimizes runtime performance with dynamic compilation, enabling platform-independent execution.
Explore object oriented programming by binding data and functions into objects, using classes, and applying inheritance, polymorphism, encapsulation, with cohesion and coupling in Java and C++.
Contrast object oriented programming with procedure oriented programming by showing objects vs functions, data hiding, inheritance, and encapsulation, while noting global data access and the lack of virtual functions.
Learn how abstraction hides internal details and exposes functionality, using a car example where the end user rides the car while engineers manage the engine's inner workings.
Learn how encapsulation binds data into a single unit, using a car analogy to show how a class object exposes steering, gear, and brakes while internal parts stay hidden.
Explore inheritance in Java programming, leveraging parent and child classes to share properties and behaviors, enable polymorphism, and implement real-world examples like car and vehicle.
Demonstrate polymorphism by showing one method name handling different parameter lists to produce different outputs, via shapes, animals, and a calculator with overloaded methods.
Explain how a class defines a template for objects, where each object is an instance with its own memory address and state. Instantiate a car object in Java.
Constructors initialize objects at creation with the class name. Use no-argument and parameterized constructors to set initial values, and note that defining your own constructor overrides the default constructor.
Explain how an abstract class in Java combines abstract and non-abstract methods, must be extended and implemented, and cannot be instantiated, with examples of abstract and non-abstract methods.
Java interfaces are blueprints for classes, with abstract methods, constants, and static methods. They enable abstraction, loose coupling, and multiple inheritance through implementation, shown by a printable interface.
Explore is-a versus has-a relationships in Java, illustrating how inheritance lets programmer extend employee, while a has-a link shows an employee containing an address as a separate object.
The static keyword marks a class member as belonging to the class, shared across all objects, with static blocks and methods executed before constructors.
Learn the super keyword in Java to access the immediate parent’s attributes and methods, and to invoke the parent constructor, illustrated by animal and dog examples.
This lecture explains method overloading in Java: define multiple methods with the same name but different parameter lists, so calls resolve by number, type, or order of arguments.
The lecture explains how a child class overrides a method from its parent class, providing its own implementation, and how overriding uses the same signature while overloading requires different signatures.
Explore runtime polymorphism in Java through dynamic binding, where the method invoked depends on the actual object referenced by a superclass variable.
Explore the final keyword in Java, including final variables (including blank final), final parameters, final methods, and final classes, and learn how each restricts modification, overriding, and inheritance.
Wrapper classes in Java wrap primitive values into objects, no import needed; convert primitives to wrapper objects like new Integer(value), and unwrap with the corresponding primitive value method.
Explore how Java access modifiers control the scope of fields, methods, and classes, detailing private, default, protected, and public access and show where each is accessible (within class or package).
In Java, an exception is an event during program execution that disrupts the normal flow, possibly occurring at runtime even without compile errors, and includes unchecked exceptions.
Explore the Java exception hierarchy from the base throwable to subclasses like runtime exception, clone not supported exception, and interrupted exception, and how IO and reflective operation exceptions impact execution.
Explore the distinction between checked and unchecked exceptions in Java, focusing on runtime exceptions and how they occur at runtime rather than compile time.
Explore how to handle exceptions in Java with try-catch-finally, convert raw error messages into user-friendly warnings, and keep program flow intact despite bad input.
Master the try catch block for exception handling, including arithmetic errors like 50 divided by zero, and executing alternative operations in the catch.
Understand how multiple catch blocks handle different exceptions with separate handlers, and why they’re ordered from more specific to less specific. See why only one catch block executes per exception.
Explore how an exception propagates from the emitter up the call stack through nested try blocks until it is caught, illustrating the flow with a try-catch example.
Learn how the finally block executes regardless of exceptions, used to close resources, with try, catch, and finally syntax, and shows an arithmetic exception example.
Use the throw keyword in Java to throw an exception from a method or block. It can throw type or object exceptions, including custom ones, and the program terminates.
Learn how the Java throws keyword declares methods that can throw exceptions, when to declare with a throws clause, and how exceptions are propagated from method calls.
Learn to create a custom or user-defined exception in Java, extend the base exception, implement constructors and toString, and throw and handle it in business logic.
Explore how strings in Java are immutable and how to create them using string literals or the new keyword, highlighting memory use and the resulting objects.
Explore why strings are immutable in Java, where string literals and new strings reference distinct objects. Understand how immutability affects references and the string pool behavior.
Explore how StringBuffer enables mutable strings in Java, featuring constructors and capacity options, and master core methods such as insert, reverse, delete, and replace.
Explore the Java StringBuilder class for creating and modifying strings, contrast it with StringBuffer, and review constructors, capacity, and methods such as insert, replace, reverse, ensureCapacity, charAt, length, and substring.
Explore the Strangelove string plus class in Java, covering get, length, format, substring, join, equals, isEmpty, replace, replaceAll, equalsIgnoreCase, split, toUpperCase, trim, and valueOf.
Explore how StringTokenizer breaks a string into tokens using a delimiter, and examine its three constructors and methods like hasMoreTokens and nextToken.
Explore Java's collections framework, a unified architecture for storing and manipulating groups of objects, and learn how interfaces, implementations, and algorithms enable searching, sorting, insertion, and deletion.
Explore the collection hierarchy in Java, detailing the top interface and subinterfaces like List and Queue, and how classes implement Map and priority queue.
Explore the collection interface, the root of all collections, and learn to add, add all, remove, remove all, retain all, contains, contains all, iterator, size, and hash code.
Explore ArrayList in java.util: a dynamic list with no size limit that supports add and remove, preserves insertion order, allows duplicates, implements the List interface, and grows automatically.
Explore ArrayList methods in depth, including add, add with index, addAll, get, contains, indexOf, remove, removeIf, replaceAll, subList, size, and trimToSize to manage list data efficiently.
Explore linked lists as a linear, non-contiguous data structure where each node points to the next, preserving insertion order and allowing duplicates, with fast insertions and is not synchronized.
Explore hashset in Java, a non synchronized collection that does not guarantee a stable iteration order. Learn that it stores unique elements and can throw concurrent modification exceptions.
Explore common HashSet methods in Java, including add, clear, clone, contains, iterator, remove, and size to manage elements efficiently.
Explore Java hash maps: implement map interface, store values by keys, use put to insert, and entrySet to iterate keys and values, with capacity 50 and load factor 0.75.
Explore HashMap methods such as clear, isEmpty, put, putAll, remove, containsKey, containsValue, get, getOrDefault, replace, replaceAll, values, size, keySet, and for each entry, illustrating how each manipulates mappings.
Discover Java's concurrent hash map, with segment locking that permits concurrent retrievals without synchronization, and updates that lock a specific segment within the concurrent map interface framework.
Explore how Java's Comparable and Comparator interfaces differ and how to sort with single-key natural ordering or multi-criteria sorting using compareTo and compare methods.
This course has been designed to build and strengthen your Java knowledge. It doesn't matter in which level you are belongs to, as long as you're willing to learn a new skill, you're welcome here ! Java will be taught in the easiest possible manner so your basics should be clear and practice questions will be provided to strengthen your concepts!
We are going to discuss the theory behind each concept and then we take a look at the concrete implementation in Java as well.
WHY TAKE THIS COURSE?
This is practical oriented course, In every lecture, I have explained with a example program to make you understand the concept
Simple and Clear explanations
This course is updated regularly
WHAT YOU WILL LEARN?
History of Java
Basics of Java
Garbage collection
OOPs Concepts
Abstraction, Encapsulation, Inheritance and Polymorphism
Strings
Collections and Data Structures
Exceptions and Errors
Handling of Exceptions
GUARANTEE
This course is backed by Udemy's 30 day money back guarantee. If after taking this course you realise that this is not for you. Please request a refund, I only want satisfied students
WHAT ARE THE BENEFITS OF THIS COURSE?
Learn basic concepts of Core Java and write programs
In this course, you will learn what is java and how it works, in details
I will teach you how to create constructors, classes and objects
I will also teach you about object oriented concepts like inheritance, polymorphism, encapsulation and abstraction in Java
I will also teach you about the Collection Frameworks in Java
I will also teach you about the Exception handling in Java
WHO IS THIS COURSE FOR?
Students who want to start their career as a Java Professional
People who are looking to transition their way to become a java developer
Students who want to learn Java academically
So what are you waiting for? Press the BUY NOW button and start the course. See you inside.