- 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
- 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()
distinct()
limit()
skip()