OOP
- ▸ oop == vs equals() vs the hashCode contractFREE
- ▸ oop Singleton pattern — 4 ways to implement it, which is thread-safe?FREE
- ▸ oop Composition over inheritance — when extending a class hurts
- ▸ oop SOLID, part 2 — Interface Segregation and Dependency Inversion
- ▸ oop Liskov Substitution — how to spot a violation
- ▸ oop Designing an immutable class — the full checklist
- ▸ oop Constructor, static factory or builder — picking a creation style
- ▸ oop Generics and type erasure — what erasure stops you doing
- ▸ oop Wildcards — ? extends vs ? super and the PECS rule
- ▸ oop Strategy and Template Method in modern Java
- ▸ oop How Java picks an overload — widening, boxing and varargs
- ▸ oop The four pillars of OOP — what each one buys you in Java
- ▸ oop Constructors — default, parameterised and chaining with this() and super()
- ▸ oop Why one superclass but many interfaces?
- ▸ oop Overloading vs overriding — the rules that trip people up
- ▸ oop Compile-time vs runtime polymorphism — what dynamic dispatch really does
- ▸ oop Access modifiers — public, protected, package-private and private
- ▸ oop this and super — every way to use them
- ▸ oop Why clone() is broken — and what to use instead
- ▸ oop Abstract class or interface? Choosing well since Java 8
- ▸ oop Calling an overridable method from a constructor — the half-built object
- ▸ oop Field hiding and static method hiding — why they aren't overriding
- ▸ oop Overriding rules — covariant return types and the throws clause
- ▸ oop Default methods and the diamond problem — how conflicts get resolved
- ▸ oop Static nested, inner, local and anonymous classes — which when?
- ▸ oop Upcasting, downcasting and ClassCastException
- ▸ oop SOLID, part 1 — Single Responsibility and Open/Closed with examples
- ▸ oop instanceof or getClass() in equals? The symmetry trap