- Java is an OOP language: class/object with lambda (functional programmig Java 8+).
- Encapslation: private, protected, public, final (Immutability) -object identity vs. state, == vs. equals()/hash()
- Inherience: abstract class vs. final class
- Template pattern
- Polymorphism: program to interface
- Decorator pattern (composition)
- Visiter pattern (double dispath)
- Lambda
- Exceptions
- java.util.collection:
- Collection, Iterable for (var : iterator) {}
- List (ArrayList vs. LinkedList), (Hash vs. Tree) Set/Map
- When to use Collections.unmodifiableList/Set/Map() vs. java.util.concurrent.ConcurrentHashMap
- Books
- seperate interface from implemenation.
- program to interface (as type of method parameters)
- prefer composition/delegation to inheritance
- patterns: Strategy (interface polymorphsim) vs. Template method (inheritance)
- avoid mutable state: final fields, record class (Java 17+)
- Spring starts here book
- Quarkus workshop
- SQL select
- SQL join
- SQLBolt
- JDBI
- Hiberate (JPA): AVOID IT AT ALL COST 😂