Technical requirementsKnocking on Java’s doorExploring the model and functionality of the Java platformThe JDKThe JREThe JVMReviewing GC and the Java memory modelThe JMMGC and automatic memory managementExamining the core Java APIsPrimitive data types and wrappersWorking with the String APIIntroducing arraysDiscovering a collection frameworkMath APIsFunctional programming and JavaIntroducing lambdas and functional interfacesUsing functional interfaces in lambda expressionsGetting to grips with the Java Module SystemA quick review of Java features from 11 to 17+The local variable syntax for lambda parameters (Java SE 11, JEP-323)Switch expressions (Java SE 14, JEP-361)Text blocks (Java SE 15, JEP-378)Pattern matching for instanceof (Java SE 16, JEP-394)Records (Java SE 16, JEP-395)Sealed classes (Java SE 17, JEP-409)UTF-8 by default (Java SE 18, JEP-400)Pattern matching for switch (Java SE 18, Second Preview, JEP-420)Understanding Java concurrencyFrom a basic thread to executorsExecuting tasksSummaryQuestionsFurther reading