Java SE 11 Developer study materials
Java SE 11 Developer study resources

Java SE 11 Developer study plan

Java SE 11 Developer · Give each week a clear focus.

8 weeks · About 7 hours per week

Week 1

Working with Java data types & Working with streams and lambda expressions

  • Write and compile one-file programs with java directly (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, Supplier and Consumer lambda for the same domain object and chain them with andThen/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.

Week 2

Working with streams and lambda expressions & Working with arrays and collections

  • Convert a List of objects into a Stream, filter, map to a different type, and collect with Collectors.toList, toSet and joining.

  • Use Optional correctly with map, flatMap, orElseThrow and ifPresent, and remove at least two null checks from earlier code.

  • Compare ArrayList, HashSet, TreeSet and ArrayDeque by writing code that shows ordering, duplicates and equals/hashCode effects.

  • Implement Comparable and a Comparator with comparing/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.

Week 3

Working with arrays and collections & Concurrency

  • Use Map methods getOrDefault, putIfAbsent, compute, merge and replaceAll to rewrite a loop-based counting routine.

  • Iterate collections with Iterator and remove safely, and reproduce then fix a ConcurrentModificationException.

  • Create threads with Runnable, Thread and an ExecutorService, and shut the pool down with shutdown/awaitTermination.

  • Demonstrate a race condition on a shared counter and fix it with AtomicInteger and with synchronized.

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.

Week 4

Java object-oriented approach & Exception handling and assertions

  • Design a small class hierarchy using an abstract class, an interface with a default method, and an interface with a static method.

  • Apply encapsulation rules: private fields, accessors, protected visibility across packages, and explain why a final field must be assigned in every constructor.

  • Write try/catch/finally and try-with-resources blocks, and show the difference in behavior when finally itself throws.

  • Create a custom checked exception and a custom unchecked exception and justify which call sites declare throws.

  • Use assert with -ea and 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.

Week 5

Controlling program flow & Working with Java data types

  • Write if/else if, switch on String, int and an enum, and convert one switch statement to an arrow-form switch expression with yield.

  • Implement while, do-while, classic for, enhanced for and labeled break/continue over nested loops.

  • Use var in local variable declarations, for-loop indexes and try-with-resources, and list the places where var is 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.

Week 6

Java SE 11 platform module system & Java I/O API

  • Create a multi-module project with module-info.java using requires, exports, opens and provides ... with, and compile/run it from the command line.

  • Diagnose one module not found and one package is not visible error and record the exact fix for each.

  • Read and write text files with Files.newBufferedReader, Files.writeString and Files.lines, using try-with-resources.

  • Walk a directory tree with Files.walk/Files.find, filter by extension, and copy selected files with Files.copy.

  • Serialize and deserialize one object with ObjectOutputStream/ObjectInputStream and note the serialVersionUID requirement.

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.

Week 7

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[] plus Arrays.fill for clearing password data.

  • Format dates, numbers and currency with DateTimeFormatter, NumberFormat and Locale, and parse a localized date string.

  • Load a ResourceBundle with 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.

Week 8

Exception handling and assertions & Concurrency & Working with streams and lambda expressions

  • Re-implement one earlier exercise using CompletableFuture chaining 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.