- Date Time API
Java has two date APIs. The old one — Date , Calendar , SimpleDateFormat — is mutable, not thread-safe, and confusing enough that it was replaced. The modern one, java.time , arrived in Java 8 and is what you should use for everything. This matters more than most "prefer the new API" advice,…
- ArrayList — Building a Growable Array
ArrayList with the lid off — an array, a size, and a resize when it fills up. Why doubling makes add() amortised O(1) while growing by one makes n adds O(n^2), what the resize actually costs, and the null that stops a removed element leaking.
- Spring Boot – JdbcTemplate
When JPA has nothing to offer — aggregates, reports, any query whose result is not an entity. NamedParameterJdbcTemplate, RowMappers in their own testable classes, and the trap that silently inflated a revenue report: hand-written SQL never sees the @SQLRestriction that hides deleted rows.
- Python – Iteration (for / while loops)
The for loop that walks a sequence rather than an index, when a while loop is the right shape, range, enumerate and zip, break and continue, and the loop-else clause almost nobody knows is there.
- Interface default methods and static methods
Before Java 8, adding a method to an interface broke every class that implemented it. That is not a theoretical problem — it is why Collection went years without obvious conveniences. Default methods solved it, and understanding why they exist tells you when to use them. The problem they were…