Outline

  • Background

    • What is Object Oriented Programming?

    • JVM

    • Java Version History

    • Java Memory Model

      • Stack, Heap

      • Garbage Collector

      • Reference and Value Types

      • Pass By Value

  • Java Core

    • Basic Class & main method

    • Variables

      • Primitives

      • Strings, Arrays

    • Operators

    • Expressions, Statements & Blocks

    • Control Flow

      • Conditionals

        • if, if-else

        • switch

        • ternary

      • Loops

        • for

        • for-each

        • do-while

        • while

        • break, continue

    • Classes Part 1

      • Class

      • Member variables

      • Initialization blocks

      • Methods

        • Varargs

        • Overloading

      • Constructors

    • Objects

      • Creating objects

      • Using objects

    • Static

      • Static variables

      • Static methods

      • Static classes

    • Classes Part 2

      • this keyword

      • packages

      • access modifiers

      • initializing fields

    • Nested Classes

      • Inner Classes

      • Local Classes

      • Anonymous Classes

    • Lambdas

      • Expressions

      • Method References

    • Enums

    • Annotations

      • Basics

      • Declaring annotation type

      • Predefined Annotation types

      • Repeating annotations

    • Interfaces & Inheritance

      • Interfaces

        • Defining

        • Implementing

        • Using Interface as a type

        • Default methods

      • Inheritance

        • Overriding & Hiding

        • Polymorphism

        • Hiding fields

        • super keyword

        • Object as a superclass

        • Final classes & methods

        • Abstract methods & classes

    • Numbers & Strings

      • Numbers

        • Numbers Classes

        • Formatting number output

        • java.lang.Math.*

        • Casting

        • Autoboxing and Unboxing

      • Characters

      • Strings

        • Converting from numbers to Strings

        • Manipulating characters

        • Comparing Strings and Sub-strings

        • StringBuilder

    • Generics

      • Why Generics?

      • Generic Types & Raw Types

      • Generic Methods

      • Bounded Type Parameters

      • Generics, Inheritance & Subtypes

      • Type Inferences

      • Wildcards

      • Type Erasure

      • Restrictions

    • Collections

      • Collection Types

        • List

        • Queue

        • Set

        • Map

        • Arrays

      • Ordering & Sorting

      • Comparisons

      • Iterating

      • Utilities

    • Exceptions

      • Heirarchy

      • Checked & Unchecked Exceptions

      • Handling Exceptions

        • try-catch-finally

        • try-with

      • Custom Exceptions

    • Lambdas & Streams

    • IO

    • Threading

    • Reflection

    • Design Patterns

    • Data Structures & Algorithms

    • Testing

    • Build & Configuration

    • Spring

Last updated