Java Programming: A Comprehensive Bootcamp from Zero to Hero

Java Programming: A Comprehensive Bootcamp from Zero to Hero

Java Programming: A Comprehensive Bootcamp from Zero to Hero - 
Become a Java developer - Core Java, Functional Programming, Lambdas, Streams, Collections, Covers upto Java 23

Preview This Course - GET COUPON CODE

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!

Post a Comment for "Java Programming: A Comprehensive Bootcamp from Zero to Hero"