• Interface
    • Fields
    • Methods (abstract, static, private, default)
    • Empty and Marker Interface
  • Abstract
    • Constructor
    • Interface vs Abstract class
    • Abstract class and method
    • Abstract class implements an Interface
  • Final
    • Class
    • method
    • variables
    • fields
    • arguments
  • Annotations
    • @Override
    • @Deprecated
    • @SuppressWarnings
    • @FunctionalInterface
    • @SafeVarargs
  • Access Modifiers
    • public
    • private
    • protected
    • package private (default)
  • Static
    • field
    • methods
    • class
    • block
  • Data types
    • primitive
    • non primitive
    • default value
    • literals
    • instanceOf
    • Upcasting, Down casting
    • Stack and heap memory
  • Wrapper Class
    • Autoboxing and Unboxing
  • Inheritance
    • Overriding
    • Multiple Inheritance using interfaces
    • hiding
    • diamond problem
  • this and super
    • calling constructor
    • access field and methods
  • String
    • equals vs ==
    • String pool
    • compare
    • String vs StringBuilder vs StringBuffer
  • Exception handling
    • try catch finally
    • exception vs errors
    • checked exception vs unchecked exception
  • Collection
    • Array vs ArrayList
    • for(int x: list)
  • Streams
    • terminal vs intermediate operators
    • map()
    • flatMap()
    • filter()
    • collect()
      • converting to list
      • grouping and converting to map
    • sorted()
      • comparator
    • distinct()
    • limit()
    • skip()