Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

Java Programming: A Comprehensive Bootcamp from Zero to Hero

via Udemy

Overview

Become a Java developer - Core Java, Functional Programming, Lambdas, Streams, Collections, Covers upto Java 23

What you'll learn:
  • Java basics including OOPs principles, Keywords, Operators, Objects, Classes, Methods, Constructors, Control flow statements, Loops, Inheritance, Interface etc.
  • Java intermediate concepts including Exceptional handling, Wrapper Classes, Collections, Enums, Date and Time API
  • Java advance concepts including Generics, Functional Programming, Lambda Expressions, Functional Interfaces, Method References, Streams API, Multi Threading
  • Achieve professional proficiency in Java programming
  • Gain practical expertise by completing over 100 coding exercises
  • Master Java best practices guided by an experienced developer

Welcome to the course Java Programming: A Comprehensive Bootcamp from Zero to Hero, a comprehensive course designed to equip developers of all levels with the essential skills and knowledge to master Java programming from its fundamentals to advanced topics up to Java 21. Whether you're a beginner looking to kickstart your programming journey or an experienced developer seeking to enhance your Java expertise, this course has something valuable to offer.


Course Overview:

This course is meticulously crafted to cover every aspect of Java programming in-depth, ensuring a solid understanding of both the foundational concepts and the latest advancements in the language. Here's what you can expect to learn throughout the course:

Section 1: Let's Say Hello to Java

  • What is Java & why should you learn

  • Approach to learn Java language

  • Writing your first Java statement using jshell

  • Brief history of Java & it's release timeline

  • Why do we have different JDK vendors in Java ecosystem

  • Installation of Java

Section 2: Primitive data types in Java

  • Introduction to Java Keywords

  • Deep dive on byte, short, int, long, float, double data types

  • Syntax to declare primitive data types & store data using them

  • How to name a java variable

  • Case Styles in programming

  • Deep dive on boolean primitive data type

  • Deep dive on char primitive data type

  • Demo of Overflow and Underflow

  • [Java 7] Using underscore in numeric literals

  • Demo of octal number format in Java

  • Demo of hexa number format in Java

  • Demo of binary number format in Java

  • Type casting in Java

  • Demo of implicit and explicit casting

  • Introduction to String in Java

  • Demo of String in Java

Section 3: What happens behind the scenes when a Java program executes

  • Introduction to life cycle of a Java program

  • What is JDK, JRE, JVM

  • How Java became a platform independent language

  • Introduction to Java program code structure

  • Writing first Java class, compiling & running it

  • Introduction to IDE & IntelliJ IDEA

  • Create first Java project in IntelliJ & set up a theme

  • Writing first Java class in IntelliJ

Section 4: Deep dive on Java classes, methods, fields, constructors

  • Java supports Object-oriented programming (OOP)

  • Demo of creating a Java class

  • Declaring fields in a Java class

  • Demo of Java methods

  • Introduction to method signature

  • Purpose of a return statement in Java methods

  • Syntax of method invocation in Java

  • Let’s say hi to main method again

  • How to create & initialize Java objects

  • Introduction to Constructor in Java

  • Demo of Constructor in Java & introduction to debugging

  • Problem with default or no-args constructor

  • Constructor Overloading in Java

  • Constructor chaining in Java

  • Usage of return statement in constructor

  • Instance Initialization Block in Java class - Part 1

  • Instance Initialization Block in Java class - Part 2

  • Introduction to static variables in Java

  • How to define constant final static variables

  • Differences between static & instance variables

  • Introduction to static methods in Java

  • Static Initialization Block in Java class

  • Debugging of method invocations in IntelliJ

  • Where does Java store classes, objects, variables, methods

  • Deep dive on Heap memory and stack memory

  • Introduction to null in Java

  • Object Destruction and Garbage collection in Java

  • Class vs Object vs Instance vs Reference

  • What is encapsulation in Java

Section 5: Comments in Java

  • Single line Comments in Java

  • Multi line Comments in Java

  • Introduction to javadoc comments

  • Generating javadoc using IntelliJ

Section 6: Deep dive on String in Java

  • Introduction to String Pool in Java

  • The intern method in String

  • The concat method in String

  • Escape sequence character & Unicode char values in String

  • Finding the length of a String

  • Comparing Strings in Java

  • Fetching a character at an index in String

  • Checking if a String is empty

  • Changing the case in String

  • Converting values as String

  • Searching for a value in String

  • Trimming a String

  • Fetching Substring from a String

  • Replacing a part of a String

  • Splitting Strings

  • [JAVA 8] Joining Strings

  • The format() method in String

  • System.out.printf() method

  • Understanding how String objects are immutable

  • How to create mutable strings in Java

  • [JAVA 15] Text Block in Java

  • Converting String to primitive data type values

  • Convert String to double data type

Section 7: Operators in Java

  • Introduction to Operators & Operands in Java

  • Assignment Operator in Java

  • Introduction to Arithmetic Operators in Java

  • Addition Operator in Java

  • String Concatenation Operator

  • Division Operator in Java

  • Modulus Operator in Java

  • Unary plus and minus operators

  • Compound Arithmetic Assignment Operators in Java

  • Increment and Decrement operators in Java

  • Introduction to Relational Operators in Java

  • Equality Operator in Java

  • Inequality Operator in Java

  • Greater than, Greater than or equal, Less than, Less than or equal operators

  • Introduction to Logical Operators in Java

  • Logical NOT operator in Java

  • Logical Short-Circuit AND, Logical AND operators in Java

  • Logical Short-Circuit OR, Logical OR operators in Java

  • Logical XOR operator in Java

  • Compound Logical Assignment Operators in Java

  • Bitwise Operators in Java

  • Bitwise NOT operator or 1’s complement in Java

  • Bitwise AND operator in Java

  • Bitwise OR operator in Java

  • Bitwise XOR operator in Java

  • Left Shift operator in Java

  • Signed Right Shift operator in Java

  • Unsigned Right Shift operator in Java

  • Compound assignment bitwise operators in Java

  • Ternary or Conditional operator in Java

  • Details of Java operators Precedence & Associativity

Section 8: Control flow statements in Java

  • Introduction to Control flow statements in Java

  • Deep dive on if, else if, else statements in Java

  • Nested if- else if - else statements

  • Ternary operator in the place of if-else statement

  • Deep dive on switch case statement

  • [JAVA 14] Deep dive on switch expression

  • Deep dive on while statement

  • Deep dive on do while statement

  • Deep dive on for loop

  • Deep dive on nested for loops

  • break statement

  • continue statement

  • return statement

  • Local variables & Scope

Section 9: packages in Java

  • Introduction to packages & benefits of them

  • Creating a package

  • Rules & standards to name a package

  • Using package members with import statement

  • The great java.lang package

  • The static import statements

  • Important points about packages & imports

  • Introduction to access modifiers

  • Demo of access modifiers for java classes

  • Demo of access modifiers for methods, fields in classes

  • Deep dive on POJO classes

Section 10: Inheritance in Java

  • Introduction to Inheritance in Java

  • Object class is the default Superclass

  • is-a & has-a relationships in Java

  • What a subclass inherits from its superclass

  • Introduction to upcasting in Java

  • Introduction to downcasting & it's demo

  • instanceof Operator

  • Static Binding and Dynamic Binding in Java

  • What is Polymorphism in Java

  • Method Overriding

  • super keyword to invoke super class methods from sub class

  • Method Overloading

  • Method overriding vs Method overloading

  • Method hiding in Java Inheritance

  • Field hiding in Java Inheritance

  • The story of constructors & Inheritance together

  • this and super keywords in Java

  • Types of Inheritance in Java

  • abstract methods and classes

  • final keyword in Java

  • [JAVA 17] sealed classes & interfaces


Section 11: Interfaces in Java

  • Introduction to Interfaces

  • Constant Field Declarations in interface

  • [JAVA 8] How to build default methods in interfaces

  • [JAVA 8] How to build static methods in interfaces

  • Multiple Inheritance using interfaces

  • Interface defines a new type

  • Marker Interface

  • [JAVA 8] Functional Interface

  • Class Vs Abstract Class Vs Interface

Section 12: Arrays in Java

  • What is a Array in Java

  • Declaring & initializing Arrays

  • Arrays length

  • Iterate elements of Array using for loop

  • Iterate elements of Array using for-each loop

  • Arrays advantages and disadvantages

  • Copying Arrays using loops

  • Copying Arrays using arraycopy and copyOf methods

  • Converting Arrays

  • Sorting Arrays

  • Searching an Array

  • Filling an Array

  • Introduction to multidimensional or nested arrays

  • Two-Dimensional or 2D Arrays

  • Jagged Arrays

  • Three-Dimensional or 3D Arrays

Section 13: Accept input using BufferedReader and Scanner

  • Understanding System.out.println

  • Introduction to BufferedReader & Demo

  • Introduction to Scanner & Demo

  • Comparison of BufferedReader and Scanner

  • Don’t use System.out.println in Production code

  • Logging in Java

Section 14: Exception handling using try, catch and finally

  • Taste of first Exception

  • try-catch block

  • multiple catch blocks

  • finally block

  • [JAVA 7] try- with-resources statement

  • Rules while handling exceptions

  • The Exception Hierarchy

  • Checked Exceptions

  • Unchecked Exceptions

  • throws keyword

  • throw keyword

  • Differences between throw and throws keyword

  • Exception Propagation

  • Nested try block

  • Custom Checked Exception

  • Custom Unchecked Exception

  • final, finally and finalize

Section 15: Unmasking Java's Superclass(java.lang.Object) Secrets

  • Introduction to the methods in Object class

  • Deep dive on getClass() in Object class

  • Deep dive on hashCode() in Object class

  • Deep dive on equals() in Object class

  • Override hashCode() & equals() methods

  • Override hashCode() & equals() methods using IntelliJ

  • Deep dive on toString() in Object class

  • Demo of hashCode(), equals() & toString() methods of String

  • Deep dive on finalize() in Object class

  • Deep dive on clone() in Object class

  • Details about Shallow cloning & Deep cloning

  • Mutable and Immutable objects

  • [JAVA 16] Record classes

  • [JAVA 10] var (local variable type inference)

Section 16: Introduction to Collections & Wrapper Classes

  • Arrays have limitations

  • What are Collections & why they accept only objects

  • Introduction to Wrapper Classes

  • Convert Primitive Type to Wrapper Objects (Boxing)

  • Convert Wrapper Objects into Primitive Types (Unboxing)

  • Autoboxing and unboxing

  • Caching with valueOf() methods

  • Java Collection Framework Hierarchy

Section 17: Lists and ArrayLists Unleashed – A Hilarious Journey through Data Structures

  • Deep dive on the Collection Interface

  • [JAVA 21] Deep dive on the Sequenced Collections

  • Deep dive on the List Interface

  • How to create objects of ArrayList

  • Demo of ArrayList

  • [JAVA 7] Diamond Operator in Java

  • ArrayList performance

  • [JAVA 9] Creating Immutable Lists

  • Iterate ArrayList using for-each and iterator()

  • Iterate ArrayList using listIterator()

  • Sorting ArrayList using sort() methods

  • Sorting ArrayList using custom Comparator

  • Sorting ArrayList of custom data type using Comparable

  • Sorting ArrayList of custom data type using Comparator

  • Arrays vs ArrayList

Section 18: LinkedLists - Java's Dance of Nodes

  • Introduction of LinkedList

  • How to create objects of LinkedList

  • Demo of LinkedList

  • Iterate LinkedList elements

  • Sorting LinkedList elements

  • LinkedList performance

  • ArrayList vs LinkedList

Section 19: Generics in Java

  • Introduction to Generics in Java

  • Why we need Generics in Java

  • Generic class in Java

  • Generics methods in Java

  • Collections with out Generics

  • Covariance Demo

  • Subtype or Upper Bound Wildcards

  • Supertype or Lower Bound Wildcards

  • Unbounded Wildcards

Section 20: Deep dive on Map, HashMap, TreeMap, LinkedHashMap

  • Introduction to Map in Java

  • Demo of HashMap

  • How HashMap Store Key, Value

  • How HashMap retrieve Value

  • [JAVA 8] HashMap improvements in Java 8

  • Iterating HashMap using keySet() and entrySet()

  • Iterating HashMap using values()

  • Introduction to TreeMap in Java

  • Demo of TreeMap in Java

  • Demo of LinkedHashMap in Java

  • [JAVA 9] Creating Immutable Maps

Section 21: Set, HashSet, TreeSet, LinkedHashSet

  • Introduction to Set in Java

  • Demo of HashSet

  • How HashSet works internally

  • Iterating HashSet

  • Set operations

  • Demo of TreeSet in Java

  • Demo of LinkedHashSet in Java

  • [JAVA 9] Creating Immutable Sets

  • List vs Set

Section 22: Enums in Java

  • Introduction to Enums

  • Problems with normal Java class constants approach

  • Demo of Enum approach

  • Associating Data to Enum Constants

  • Demo of EnumSet and it's important methods

  • Advantages of Enums

Section 23: Date and Time in Java

  • How Java supports Date and Time

  • Why a new Date API introduced in Java 8

  • Demo of java util Date

  • Date formatting and parsing using SimpleDateFormat

  • Demo of java sql Date

  • Demo of java util Calendar

  • TimeZone specific Date and Time

  • [JAVA 8] Introduction to new Date & Time API from Java 8

  • [JAVA 8] The of() methods in java.time Date and Time API

  • [JAVA 8] The from() & withXxx() methods in java.time Date and Time API

  • [JAVA 8] The toXxx() & atXxx() methods in java.time Date and Time API

  • [JAVA 8} The getXxx(), plusXxx() and minusXxx() methods in new Date & Time API

  • [JAVA 8] Introduction to Instant and Duration in java.time Date and Time API

  • [JAVA 8] Demo of Instant and Duration in java.time Date and Time API

  • [JAVA 8] Period in java.time Date and Time API

  • [JAVA 8] The multipliedBy(), dividedBy() & negated() methods

  • [JAVA 8] The truncatedTo() method

  • [JAVA 8] Demo of ZoneId, ZonedDateTime

  • [JAVA 8] Demo of ZoneOffset

  • [JAVA 8] Demo of OffsetDateTime and OffsetTime

  • [JAVA 8] Demo of Day Light Saving with ZonedDateTime

  • [JAVA 8] Non-ISO Calendars in java.time Date and Time API

  • [JAVA 8] Formatting Dates and Times using DateTimeFormatter

  • [JAVA 8] Parsing Dates and Times using DateTimeFormatter

Section 24: [JAVA 8] Functional Programming using lambda expressions

  • Introduction to Functional Programming

  • Imperative style vs functional style programming

  • What are lambda expressions and their syntax

  • How to build Lambda expressions

  • Deep dive on Functional Interfaces

  • How Functional Interface & Lambda expressions are linked

  • Anonymous inner class in the place of lambda expressions

  • Predefined Functional interfaces inside JDK

  • Deep dive on Predicate functional interface

  • Deep dive on Function functional interface

  • Deep dive on UnaryOperator interface

  • Deep dive on Consumer interface

  • Deep dive on Supplier interface

  • Deep dive on BiFunctional Interfaces

  • Primitive Type functional interfaces

  • Deep dive on Lexical Scoping of Lambda expressions

  • this and super inside lambda expression

Section 25: [JAVA 8] Building Lambda expressions using Method References

  • Introduction to Method References

  • Demo of Static Method Reference

  • Demo of Instance Method Reference

  • Demo of Instance method Reference using Class type

  • Demo of Constructor Reference

Section 26: [JAVA 8] Streams API

  • Introduction to java util stream API

  • Creating a Stream from collections

  • Streams have no storage

  • Introduction to Streams Pipeline

  • Demo of Streams map() method

  • Demo of Streams flatMap() method

  • Demo of Streams filter() method

  • Demo of Streams limit() method

  • Demo of Streams skip() method

  • Streams are traversable only once

  • Introduction to Streams reduce() method

  • Demo of Streams reduce() method

  • Demo of Streams collect() method

  • Demo of Streams collectingAndThen() method

  • Demo of Streams groupingBy() and partitioningBy() method

  • Finding and Matching methods in Streams

  • Quick revision about stream pipeline

  • Deep dive on parallel streams and demo

  • Collections Vs Streams

Section 27: [JAVA 8] Optional to deal with nulls in Java

  • Introduction to Optional class

  • Demo of Optional

  • Demo of ifPresent, ifPresentOrElse, orElse, orElseGet methods

  • Demo of orElseThrow, map, filter methods

  • Quick tip to filter null elements with Stream API

Section 28: MultiThreading in Java

  • What is MultiThreading

  • How a program or a software executes inside a computer

  • Parallel vs Concurrent Execution

  • How multiple threads improve performance

  • Creating Threads in Java

  • MultiThreading Demo Program

  • Demo of Thread methods getId, threadId, getName, setName, currentThread, sleep

  • Demo of Thread method join, getPriority, setPriority

  • Demo of wait(), notify(), notifyAll()

  • Introduction to Race condition & synchronized keyword

  • Demo of synchronized methods and blocks

  • Introduction & Demo of volatile keyword

  • Introduction to Deadlock

  • Demo Deadlock & possible fixes

  • [JAVA 21] Introduction to Virtual Threads

Section 29 - New features from Java 22 & Java 23

  • Launch Multi-File Source-Code Programs

  • Unnamed Variables & Patterns

  • Markdown Documentation Comments

Throughout the course, you'll engage in hands-on coding exercises, assignments, and projects to reinforce your learning and apply the concepts in real-world scenarios. Our experienced instructors will provide guidance, support, and insights to help you navigate the intricacies of Java programming effectively.


Whether you aspire to become a Java developer, enhance your career prospects, or simply gain a deeper understanding of one of the most widely-used programming languages, this course will empower you to achieve your goals in the world of Java programming.


Prerequisites:

- No prior programming experience required, but familiarity with basic programming concepts will be beneficial.

- A computer with internet access and a willingness to learn and practice.


Target Audience:

- Beginners aspiring to learn Java programming.

- Experienced developers looking to expand their Java skills.

- Students and professionals seeking to advance their careers in software development.


Enroll now and embark on a journey to master Java programming comprehensively, from the basics to Java 21 and beyond!

Taught by

Eazy Bytes and Madan Reddy

Reviews

4.7 rating at Udemy based on 495 ratings

Start your review of Java Programming: A Comprehensive Bootcamp from Zero to Hero

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.