-
- Pre-modular vs module-aware class loaders
-
- String pool vs Constant pool vs Symbol pool
-
- How StringBuffer differs from String
-
- The concatenation (pooling) problem with String
-
- Why Java doesn't support multiple inheritance
-
- No
virtual keyword in Java, and how it stays efficient
-
- Commonly used annotations and why they exist
-
- What are concrete classes in Java?
-
- What is an abstract class, and when does a class become abstract?
-
- When and where to use
final, and what it does
-
- How constructor chaining is done in Java
-
- Accessing the parent class's methods and constructor with
super
-
- Sealed, non-sealed and final classes
-
- Overriding
toString(), and why we avoid console I/O inside class methods