- (important) primitives, Wrapper classes, String, BigDecimals, LocalDate, LocalDateTime
- (important) if-else, loop (For-each)
- (less important) switch, scanner
- (important) array -> basic operation (loop, get by index)
- (less important) algorithm (算法) (e.g. min/max, counting, searching, sorting, ASCII)
- (important) class & object (heap memory, object reference, object), Object.class
- (important) constructor, getter, setter
- (important) static variable & method & class, attribute (instance variable), final variable & method & class
- (important) hashCode, equals(), toString()
- (important) method -> presentation (e.g. BMI, area, isVIP, etc.)
- (important) One to Many (Many: Array, ArrayList, LinkedList, ArrayDeque, ... etc.)
- (important) One to One (Class can be Attribute type)
- (important) Abstraction (Interface)
- (important) Polymorphism (apply to Parent Class / Interface)
- (important) Inheritance (Parent Class)
- (important) Encapsulation
- (important) static & dynamic Polymorphism
- (important) enum
- (less important) Comparable / Comparator
- (important) Collection -> List, Queue, Set
- (important) Map (HashMap)
- (important) ArrayList, HashSet, HashMap
- (important) Exception -> checked and unchecked exception, throw, try-catch
- (less important) ArrayDeque, PriorityQueue, (thread-safe) Vector, (thread-safe) Stack
- (less important) Generic
- (important) Stream -> filter, map, sort, collect + flatmap
- (important) Optional (because 會影響日後用 StringBoot)
- (important) Builder Pattern (lombok)
- (important) Maven -> mvn command -> pom.xml -> (after having pom.xml) clean, compile, test, install
- (important) dependency -> external Java library (i.e. lombok)
- (less important) count, distinct
- (less important) Thread (Java has, but Javascript & Python haven't)
- e.g. transaction system, 搶購系統 (i.e. Apple)
- (less important) thread-safe (if two or more threads called, then conflict / risk happened)
- (less important) junit, mockito, hamcrest
- (less important) Recursion