Java: language and application decisions
Learn Java SE 25 through types, objects, collections, streams, concurrency and modules. Practice code interpretation and diagnosis through selection questions.
Modules and lessons
Open a lesson to begin. Follow the sequence or revisit any concept.
Types, conversions and validation
Follow a value from text input to an operation: distinguish absence, conversion, precision and domain bounds.
45 minReferences, identity and text
Distinguish equality, sharing and copying to prevent unexpected changes across components.
45 minMethods, contracts and control flow
Select the right operation and trace paths that can produce effects, end a search or return a result.
45 minObjects, interfaces and records
Define contracts, protect state and choose representations that preserve validation, access and equality.
45 minCollections, generics and keys
Choose structures, copies and signatures that preserve order, identity, data ownership and duplicate rules.
45 minExceptions, resources and files
Preserve useful failures, manage resources and distinguish paths, reads and publication guarantees.
45 minStreams, lambdas and absence
Interpret pipelines and optional results, distinguishing transformations, effects and aggregation policies.
45 minDecimals, time and boundaries
Define precision, rounding and temporal boundaries without losing information in conversions.
45 minConcurrency, state and cancellation
Protect shared invariants and distinguish waiting, completion, interruption and task effects.
50 minModules, delivery and diagnosis
Relate APIs, modules, versions and artifacts to interpret compilation and deployment failures.
45 minObjectives and progression
Learn Java SE 25 through types, objects, collections, streams, concurrency and modules. Practice code interpretation and diagnosis through selection questions.
Audience
Java learners, developers and support teams needing to interpret code and justify decisions.
Prerequisites
Basic familiarity with variables, conditions and functions. No JDK installation is required to answer assessments.
What you will learn
- Distinguish conversions, identity, equality and object contracts.
- Interpret collections, resources and pipelines without losing data or hiding failures.
- Define precision, temporal boundaries and concurrency rules.
- Diagnose mismatches between modules, artifacts and runtime.
What is available
10 lessons · 100 regular questions · 20 cases
Internal final assessment: 40 exercises in 90 minutes. Full mock exams are not yet available.
Assessments and mock exams reuse path exercises. They do not award certifications or guarantee passing an external exam.
Scope, review and limitations
Ten lessons with 100 regular questions and 20 original cases. Learn to interpret contracts, predict outcomes and diagnose type, collection, file, time, concurrency and deployment failures. Every assessment uses single or multiple selection; code and scenarios may appear without program execution. The final assessment reuses 40 course items in 90 minutes. Scope covers the Java language and standard library; Spring Boot is a separate path. The reference is Java SE 25 without preview features.
Internal 40-question assessment in 90 minutes, reusing course items, with single or multiple selection and no code execution. It is not an official exam and awards no external certification.
Independent education and assessment with original questions and scenarios. No Oracle affiliation, sponsorship or endorsement, and no official certification award. Java is a registered trademark of Oracle and/or its affiliates.
References and version
Find the sources, content version and scope of this path.
Path content version
Java SE 25; no preview features
Content reviewed on 13 Oct 2026
Learning sources
- Oracle Java SE Support RoadmapConsulted on 13 Oct 2026
- JLS 25: Types, Values, and VariablesConsulted on 13 Oct 2026
- JLS 25: Conversions and ContextsConsulted on 13 Oct 2026
- JLS 25: ExpressionsConsulted on 13 Oct 2026
- JLS 25: ArraysConsulted on 13 Oct 2026
Show 51 more references
- JLS 25: Blocks, Statements, and PatternsConsulted on 13 Oct 2026
- Java 25 API: ObjectsConsulted on 13 Oct 2026
- Java 25 API: MathConsulted on 13 Oct 2026
- Java 25 API: IntegerConsulted on 13 Oct 2026
- Java 25 API: StringConsulted on 13 Oct 2026
- JLS 25: Method invocationConsulted on 13 Oct 2026
- JLS 25: Method signatures and bodiesConsulted on 13 Oct 2026
- JLS 25: Loop execution and control transferConsulted on 13 Oct 2026
- JLS 25: Switch expression resultsConsulted on 13 Oct 2026
- JLS 25: Class state, constructors and overridingConsulted on 13 Oct 2026
- JLS 25: Record classesConsulted on 13 Oct 2026
- JLS 25: Interface methodsConsulted on 13 Oct 2026
- Java 25 API: RecordConsulted on 13 Oct 2026
- Java 25 API: ListConsulted on 13 Oct 2026
- Java 25 API: Arrays.asListConsulted on 13 Oct 2026
- Java 25 API: Collections.unmodifiableListConsulted on 13 Oct 2026
- Java 25 API: MapConsulted on 13 Oct 2026
- Java 25 API: HashMapConsulted on 13 Oct 2026
- Java 25 API: TreeSetConsulted on 13 Oct 2026
- Oracle tutorial: Generics, inheritance and subtypesConsulted on 13 Oct 2026
- Oracle tutorial: Upper bounded wildcardsConsulted on 13 Oct 2026
- Oracle tutorial: Lower bounded wildcardsConsulted on 13 Oct 2026
- Oracle tutorial: Guidelines for wildcard useConsulted on 13 Oct 2026
- JLS 25: ExceptionsConsulted on 13 Oct 2026
- JLS 25: Try, finally and resource managementConsulted on 13 Oct 2026
- Java 25 API: FilesConsulted on 13 Oct 2026
- Java 25 API: PathConsulted on 13 Oct 2026
- Java 25 API: IOExceptionConsulted on 13 Oct 2026
- Java 25 API: ThrowableConsulted on 13 Oct 2026
- Java 25 API: StreamConsulted on 13 Oct 2026
- Java 25 API: OptionalConsulted on 13 Oct 2026
- Java 25 API: CollectorsConsulted on 13 Oct 2026
- JLS 25: Lambda bodies and captured variablesConsulted on 13 Oct 2026
- Java 25 API: BigDecimalConsulted on 13 Oct 2026
- Java 25 API: RoundingModeConsulted on 13 Oct 2026
- Java 25 API: ZonedDateTimeConsulted on 13 Oct 2026
- Java 25 API: ClockConsulted on 13 Oct 2026
- Java 25 API: InstantConsulted on 13 Oct 2026
- Java 25 API: LocalDateConsulted on 13 Oct 2026
- JLS 25: Threads and locksConsulted on 13 Oct 2026
- Java 25 API: FutureConsulted on 13 Oct 2026
- Java 25 API: ExecutorServiceConsulted on 13 Oct 2026
- Java 25 API: AtomicIntegerConsulted on 13 Oct 2026
- Java 25 API: ExecutorsConsulted on 13 Oct 2026
- JLS 25: Packages and modulesConsulted on 13 Oct 2026
- JDK 25: javacConsulted on 13 Oct 2026
- JDK 25: java launcherConsulted on 13 Oct 2026
- JDK 25: jdepsConsulted on 13 Oct 2026
- Java 25 API: UnsupportedClassVersionErrorConsulted on 13 Oct 2026
- Java 25 API: NoSuchMethodErrorConsulted on 13 Oct 2026
- Java 25 API: ServiceLoaderConsulted on 13 Oct 2026
Independent preparation. Check the objectives, available content and coverage limits when planning your study.
Independent education and assessment with original questions and scenarios. No Oracle affiliation, sponsorship or endorsement, and no official certification award. Java is a registered trademark of Oracle and/or its affiliates.
Java is a registered trademark of Oracle and/or its affiliates. This independent path is not sponsored or endorsed by Oracle.