Java SE 11 Developer study plan
Java SE 11 Developer · Give each week a clear focus.
8 weeks · About 7 hours per week
Working with Java data types & Working with streams and lambda expressions
Write and compile one-file programs with
javadirectly (no explicit javac step) and explain the source-file launch rules for classes with a main method.Demonstrate primitive widening, narrowing casts, autoboxing and unboxing in a scratch class, predicting each output before running it.
Declare and initialize local variables inside if/for/switch blocks and document the definite-assignment rules you hit as compile errors.
Build a
Predicate,Function,SupplierandConsumerlambda for the same domain object and chain them withandThen/and.
Your checkpoint
A single Java file of 60-100 lines that prints a documented table of primitive conversions, boxing results and lambda-composed outputs, committed with a short README of the rules it proves.
Working with streams and lambda expressions & Working with arrays and collections
Convert a
Listof objects into aStream, filter, map to a different type, and collect withCollectors.toList,toSetandjoining.Use
Optionalcorrectly withmap,flatMap,orElseThrowandifPresent, and remove at least twonullchecks from earlier code.Compare
ArrayList,HashSet,TreeSetandArrayDequeby writing code that shows ordering, duplicates andequals/hashCodeeffects.Implement
Comparableand aComparatorwithcomparing/thenComparing, and sort the same collection both ways.
Your checkpoint
A collections-and-streams exercise class with at least eight assertions (plain if throws or JUnit-style manual checks) covering filtering, grouping with Collectors.groupingBy, sorting and duplicate elimination.
Working with arrays and collections & Concurrency
Use
MapmethodsgetOrDefault,putIfAbsent,compute,mergeandreplaceAllto rewrite a loop-based counting routine.Iterate collections with
Iteratorandremovesafely, and reproduce then fix aConcurrentModificationException.Create threads with
Runnable,Threadand anExecutorService, and shut the pool down withshutdown/awaitTermination.Demonstrate a race condition on a shared counter and fix it with
AtomicIntegerand withsynchronized.
Your checkpoint
A runnable demo that prints a before/after race-condition counter (unsynchronized vs. atomic) plus a map-manipulation report, with output pasted into a notes file.
Java object-oriented approach & Exception handling and assertions
Design a small class hierarchy using an abstract class, an interface with a
defaultmethod, and an interface with astaticmethod.Apply encapsulation rules: private fields, accessors,
protectedvisibility across packages, and explain why afinalfield must be assigned in every constructor.Write try/catch/finally and try-with-resources blocks, and show the difference in behavior when
finallyitself throws.Create a custom checked exception and a custom unchecked exception and justify which call sites declare
throws.Use
assertwith-eaand explain when assertion failure is inappropriate for validating user input.
Your checkpoint
A four-class mini model (interface, abstract base, two subclasses) with a driver that exercises polymorphism, custom exceptions and one assertion run twice, with and without -ea.
Controlling program flow & Working with Java data types
Write
if/else if,switchonString,intand anenum, and convert one switch statement to an arrow-form switch expression withyield.Implement
while,do-while, classicfor, enhancedforand labeledbreak/continueover nested loops.Use
varin local variable declarations, for-loop indexes and try-with-resources, and list the places wherevaris illegal.Trace and predict output for a nested-loop program before executing it.
Your checkpoint
A control-flow kata file with at least six labeled sections whose printed output matches a written prediction file exactly.
Java SE 11 platform module system & Java I/O API
Create a multi-module project with
module-info.javausingrequires,exports,opensandprovides ... with, and compile/run it from the command line.Diagnose one
module not foundand onepackage is not visibleerror and record the exact fix for each.Read and write text files with
Files.newBufferedReader,Files.writeStringandFiles.lines, using try-with-resources.Walk a directory tree with
Files.walk/Files.find, filter by extension, and copy selected files withFiles.copy.Serialize and deserialize one object with
ObjectOutputStream/ObjectInputStreamand note theserialVersionUIDrequirement.
Your checkpoint
A working two-module command-line project plus a file-processing utility that lists and copies files by extension, with the console transcript saved as evidence.
Secure coding in Java SE applications & Localization and formatting & Annotations and functional interfaces
Harden input handling: validate with a whitelist, avoid building SQL or shell strings by concatenation, and use
PreparedStatement-style parameterization in a mock example.Demonstrate defensive copying of mutable fields and arrays returned from accessors, and use
char[]plusArrays.fillfor clearing password data.Format dates, numbers and currency with
DateTimeFormatter,NumberFormatandLocale, and parse a localized date string.Load a
ResourceBundlewith a properties file for two locales and switch locales at runtime.Declare and read a custom annotation with
@Retention(RetentionPolicy.RUNTIME)via reflection, and mark a deprecated method with@Deprecated.
Your checkpoint
A localized, input-validating console app with two resource bundles, formatted output for two locales, and a reflection-based reader for your custom annotation.
Exception handling and assertions & Concurrency & Working with streams and lambda expressions
Re-implement one earlier exercise using
CompletableFuturechaining and compare it to the executor version.Review every domain checklist and write a one-line self-test question per objective you still cannot answer from memory.
Complete two timed 50-question mixed practice sets under exam conditions and log wrong answers by domain.
Re-code the three weakest objectives from a blank file without notes.
Your checkpoint
A scored practice log with per-domain accuracy percentages and a rewritten-from-scratch file for the three weakest objectives, all committed to your study repository.
Milestones
Week 2: Can convert a collection to a stream, transform it, collect it and sort it with a custom Comparator without consulting documentation.
Week 4: Can explain and code polymorphism, checked vs. unchecked exceptions and try-with-resources, scoring at least 80% on a self-made 20-question quiz over domains 3 and 4.
Week 6: Can build and run a two-module project from the command line and read/write files with the NIO.2 API unaided.
Week 8: Timed mixed practice sets average 75% or higher, with no domain below 60% accuracy.