CHS-J1 logo
Focused certification exam prep
Start practice

CHS-J1 Exam Domains 2026: Complete Guide to All 5 Content Areas

TL;DR
  • The CodeHS Java Level 1 exam has 45 multiple-choice questions in a 90-minute online timed format.
  • CodeHS lists five Topics & Concepts Covered headings but publishes no percentage weights for them.
  • The passing score for the Java exam is 50%, per the CodeHS Certifications FAQ.
  • Domain 2 (data types, strings, arrays, ArrayLists, 2D arrays) covers the broadest range of testable skills.

The CodeHS Java Level 1 Exam at a Glance

The CodeHS Java Level 1 Certification Exam is a CodeHS-issued credential that checks whether you can read, trace, and reason about core Java code. It is delivered as an online timed exam of 45 multiple-choice questions. According to the CodeHS Certifications FAQ, the exam is timed at 90 minutes, which works out to an average of two minutes per question. The passing score for Java is 50%.

There are no prerequisites. Anyone can sit the exam, although CodeHS recommends its AP CSA course as preparation. If you want the full eligibility picture, see our breakdown of CHS-J1 requirements, prerequisites, and how to qualify.

This guide walks through each of the five content areas CodeHS names in its official overview, explains what each one is really asking you to do, and shows how to sequence your preparation. If you are looking for a broader plan, pair it with the CHS-J1 study guide for passing on your first attempt.

What the sources do and do not say: CodeHS lists five Topics & Concepts Covered headings but does not publish a percentage weight for any of them. Any site that claims to know "Domain 2 is 30% of the exam" is guessing. Treat all five areas as fair game and prepare proportionally to their breadth rather than to invented numbers.

How CodeHS Organizes the Five Content Areas

The official overview groups the exam into five headings. Here is the full map in one place:

DomainNameCore Skills Listed by CodeHS
1Java FundamentalsBasic input and output with standard packages (including Scanner); evaluating variable scope
2Working with Data Types, Variables, and ExpressionsPrimitives, casting, arithmetic; Strings and parsing; arrays; ArrayLists; 2D arrays
3Implement Flow ControlBoolean expressions and logic evaluation; for, for-each, and while loops
4Perform Object-Oriented ProgrammingCreating and using objects; writing classes; recognizing class hierarchies and inheritance
5RecursionRecursion analysis, base cases, and execution counts

Notice the verbs. CodeHS uses words like evaluate, understand, recognize, and analyze repeatedly. In a multiple-choice format, that points to questions where you read a snippet and predict behavior rather than write code from scratch. Your practice should mirror that: trace code by hand, predict output, and spot why a snippet fails or what a variable holds at a given line.

Domain 1: Java Fundamentals

Domain 1: Java Fundamentals

The smallest-looking domain on paper, but it underpins every other question on the exam.

  • Perform basic input and output using standard packages, including Scanner
  • Evaluate the scope of a variable

Input and Output with Standard Packages

CodeHS specifically names Scanner. Expect to recognize how a program imports a standard package, creates a Scanner object, reads values, and prints results. A multiple-choice question might show a short program and ask what it prints given certain input, or which line is needed for the code to compile and run.

Details worth drilling:

  • The difference between System.out.print and System.out.println, and how that changes the output you would see line by line.
  • How Scanner methods for different types (reading an integer versus a full line of text) behave, including the classic leftover-newline surprise when you mix them.
  • Why an import statement matters for classes that live outside the default package.
  • How string concatenation and escape sequences affect printed output.

Evaluating Variable Scope

Scope questions ask where a variable exists and where using it will cause an error. Candidates commonly miss these because they skim. The pattern to internalize:

  • A variable declared inside a loop or block is not visible after the closing brace.
  • A loop variable declared in a for header disappears when the loop ends.
  • Local variables in a method are invisible to other methods.
  • Instance variables belong to an object; a local variable with the same name can shadow one.

When you see a scope question, mentally draw boxes around each pair of braces and ask which box each variable lives in.

Domain 2: Working with Data Types, Variables, and Expressions

This is the broadest domain by topic count. CodeHS lists five distinct subtopics here, and each one can generate several different question styles. Expect a substantial share of your 45 questions to touch this material, even though CodeHS does not publish an exact figure.

Domain 2: Data Types, Variables, and Expressions

Reading and predicting what data looks like as a program runs.

  • Primitive variables, including casting and arithmetic operations
  • Strings and string methods, including parsing
  • Arrays: creating, manipulating, and traversing
  • ArrayLists: creating, manipulating, and traversing
  • 2D arrays: creating, manipulating, and traversing

Primitives, Casting, and Arithmetic

Java's arithmetic rules are a frequent source of trick questions. Be ready for:

  • Integer division: dividing two ints discards the fractional part, so the result may not be what a calculator shows.
  • The modulus operator: remainders, evenness checks, and wrap-around logic.
  • Casting: converting a double to an int truncates rather than rounds, and where you place the cast in an expression changes the result.
  • Operator precedence: multiplication and division before addition and subtraction, with parentheses overriding.
  • Compound assignment and increment/decrement: how += and ++ change a variable.

Strings and String Methods, Including Parsing

Strings are objects in Java, which creates distinctive pitfalls. Know the common methods well enough to evaluate them by hand: finding length, extracting substrings by index, locating a character or fragment, and comparing strings. Remember that comparing string contents requires the equals method rather than the == operator, and that strings are immutable, so a method that appears to change a string actually returns a new one.

CodeHS also names parsing. That means converting text into numeric values, such as turning the string "42" into an int, and being able to tell when such a conversion is appropriate. Pay attention to the relationship between text and numbers, since adding two strings that look like numbers concatenates rather than sums them.

Arrays and ArrayLists

Arrays and ArrayLists are listed separately, so expect questions on both and on the differences between them. Arrays have a fixed size set at creation and use bracket notation and a length field. ArrayLists resize dynamically and use method calls such as adding, getting, setting, removing, and checking size.

  • Off-by-one errors are the dominant trap: valid array indexes run from 0 to length minus one.
  • Know the default values of newly created arrays (zeros for numeric types, false for booleans, null for objects).
  • When an element is removed from an ArrayList, later elements shift, which can change what a loop sees.
  • Traversal questions often ask what an array contains after a loop modifies it.

2D Arrays

Two-dimensional arrays are traversed with nested loops. The key habit is distinguishing rows from columns: the first index selects the row, the second selects the column, and the number of columns is the length of a row. Practice tracing a nested loop on a small grid, writing out values in the order they are visited, then summing a row, a column, or a diagonal.

Fast self-check for Domain 2: pick any snippet that builds or loops through an array, ArrayList, or 2D array and write the final contents on paper before checking. If you can do that reliably for all three structures, this domain is in good shape. If you want a quick-reference version, the CHS-J1 cheat sheet condenses the must-know facts.

Domain 3: Implement Flow Control

Domain 3: Implement Flow Control

Deciding which lines run and how many times they run.

  • Boolean expressions, including understanding and evaluating logic expressions
  • Iterations and loops: for loops, for-each loops, and while loops

Boolean Expressions and Logic

CodeHS asks you to understand and evaluate logic expressions. In practice that means being fluent with relational operators, the logical operators AND, OR, and NOT, and compound conditions in if and else if chains. Skills that pay off:

  • Evaluating a compound condition by substituting actual values and simplifying step by step.
  • Applying De Morgan's laws to recognize that a negated compound condition can be rewritten in an equivalent form.
  • Understanding short-circuit evaluation: in an AND, if the left side is false the right side is never evaluated, which matters when the right side could cause an error.
  • Knowing that in an if/else if/else chain only the first true branch runs.

Loops: for, for-each, and while

Loop questions test whether you can count iterations and predict final values. Be comfortable with all three forms CodeHS names:

  • for loops: initialization, condition, and update; know exactly when each executes and what value the loop variable holds on exit.
  • for-each loops: traverse every element of an array or ArrayList without an index; recognize that you cannot use them to assign new values to primitive array elements through the loop variable.
  • while loops: condition checked before each pass; watch for loops that never execute or never terminate.

A reliable technique is the trace table: columns for each variable, one row per iteration. It is slow in practice sessions but builds the accuracy you need when two answer choices differ by a single iteration.

Domain 4: Perform Object-Oriented Programming

This domain needs the most careful reading of the scope, because CodeHS draws an explicit boundary around it. The official topics are creating and using objects, writing classes (including methods, instance variables, and static methods), and recognizing class hierarchies and inheritance. The exam excludes implementing inheritance, polymorphism, abstract classes, and interfaces.

Domain 4: Perform Object-Oriented Programming

Working with classes and objects, and reading class relationships.

  • Creating and using objects
  • Writing classes, including methods, instance variables, and static methods
  • Recognizing class hierarchies and inheritance
  • Excluded: implementing inheritance, polymorphism, abstract classes, and interfaces

Creating and Using Objects

Know how to instantiate an object with new, how a constructor initializes it, and how to call methods on it. A common question style gives you a short class definition and a few lines of client code, then asks what is printed or which call is valid. Remember that variables holding objects store references, so two variables can point to the same object and a change through one is visible through the other.

Writing Classes

Writing classes covers three building blocks CodeHS names directly:

  • Instance variables: data each object owns, typically declared private.
  • Methods: behavior, including accessors that return values and mutators that change state; pay attention to return types and parameters.
  • Static methods: methods that belong to the class rather than to any object, called on the class name and unable to use instance variables directly.

Tracing questions in this area often involve calling a mutator several times and then asking for the state of an object, or distinguishing a static call from an instance call.

Recognizing Hierarchies Without Implementing Them

The wording matters: you need to recognize class hierarchies and inheritance, not build them. That means being able to read a snippet in which one class extends another and understand the relationship at a conceptual level. Because implementing inheritance, polymorphism, abstract classes, and interfaces is outside the stated scope, do not burn study hours on writing those constructs. Spend that time on the writing-classes and object-usage skills that are explicitly in scope.

Scope discipline matters: many Java courses, including broader AP-style courses, cover polymorphism and interfaces in depth. The CodeHS exam overview carves them out. When you use a broader course for preparation, filter its material against the five official headings rather than assuming everything in the course is testable.

Domain 5: Recursion

Domain 5: Recursion

Reading self-calling methods and predicting what they do.

  • General recursion analysis
  • Understanding the base case
  • Understanding execution counts

The recursion domain is explicitly about analysis. You are not expected to invent clever recursive algorithms; you are expected to read a recursive method and determine what it returns, how many times it runs, and why it stops.

Base Cases

Every recursive method needs a base case that ends the chain of calls. Practice identifying it first. If you cannot find a condition under which the method stops calling itself, the method will recurse until it fails, and that is itself a testable observation.

Execution Counts

CodeHS names execution counts specifically. A question might ask how many times a method is called, or how many times a print statement runs, for a given input. The reliable approach is to draw the call tree: write the initial call, branch to each recursive call it makes, and keep going until every branch hits a base case. Then count the nodes. For methods that make a single recursive call, the count is usually linear in the input; for methods that make two, the tree fans out and counts grow quickly.

Also watch the order of operations. Whether a print statement comes before or after the recursive call changes whether output appears on the way down or on the way back up.

Scheduling Your Prep Around the Five Domains

Because the domains build on one another, sequence matters more than total hours. Fundamentals and data structures feed loops, loops feed object-oriented tracing, and recursion rewards everything before it. Here is one way to order the work across a five-week window; adjust to your own timeline.

Week 1

Domain 1 plus primitives and Strings

  • Write small Scanner programs and predict output
  • Drill scope with nested blocks and loop variables
  • Practice integer division, modulus, casting, and string methods
Week 2

Arrays, ArrayLists, and 2D arrays

  • Trace traversals and record final contents on paper
  • Compare array and ArrayList syntax side by side
  • Walk 2D grids row by row, then column by column
Week 3

Domain 3: Boolean logic and loops

  • Evaluate compound conditions with concrete values
  • Build trace tables for for, for-each, and while loops
  • Revisit Week 2 structures using loops
Week 4

Domain 4: Classes and objects

  • Write classes with private instance variables and static methods
  • Trace object state through repeated method calls
  • Read, but do not implement, inheritance examples
Week 5

Domain 5 and full review

  • Draw call trees and count executions
  • Take timed sets and review every wrong answer by domain
  • Return to your weakest domain for a final pass

This ordering puts recursion last on purpose: you need confident loop and method-call tracing before call trees make sense. Use the CHS-J1 practice test to run timed sets and tag each miss by domain so Week 5 targets real gaps.

Key Takeaway

Tag every missed practice question with one of the five official domain names. After a few sessions the pattern shows where to spend remaining time, which is far more reliable than guessing at weights CodeHS has not published.

Scoring, Vouchers, and Credential Logistics

Knowing the content is half the job; the rest is understanding how the exam is administered. From the official CodeHS sources:

  • Format: 45 multiple-choice questions, online and timed, with a 90-minute limit.
  • Passing score: 50% for Java, per the CodeHS Certifications FAQ. See CHS-J1 passing score explained for how to think about that threshold.
  • Vouchers: a new voucher is required for each exam attempt, so a retake means obtaining another voucher.
  • Credential lifespan: CodeHS states certification credentials expire after 10 years.
  • Prerequisites: none; CodeHS recommends its AP CSA course for preparation.

CodeHS does not publish fee amounts or pass rates in the sources we rely on, so we do not quote any. For what is known about costs and how to budget for them, read our CHS-J1 certification cost breakdown, and for a realistic sense of effort see how hard the CHS-J1 exam is.

Exam DetailCodeHS Java Level 1
Number of questions45 multiple choice
Time limit90 minutes
Passing score50%
DeliveryOnline timed exam
VoucherNew voucher required for each attempt
Credential validity10 years
Official domain weightsNot published

Pacing the 90 Minutes

With 45 questions in 90 minutes you have roughly two minutes each, but the questions are not equal. Quick wins such as scope checks, simple boolean evaluations, and single-method string questions can take under a minute. Nested-loop tracing, 2D array traversals, and recursion call trees deserve more time. A sensible approach is to answer the fast questions first, mark the long traces, and return to them with the time you saved.

Frequently Asked Questions

How many content areas does the CodeHS Java Level 1 exam cover?

The official CodeHS overview lists five Topics & Concepts Covered headings: Java Fundamentals; Working with Data Types, Variables, and Expressions; Implement Flow Control; Perform Object-Oriented Programming; and Recursion. CodeHS does not publish percentage weights for these areas, so prepare for all five.

Do I need to know how to implement inheritance, polymorphism, or interfaces?

No. The exam scope excludes implementing inheritance, polymorphism, abstract classes, and interfaces. You should be able to recognize class hierarchies and inheritance when you read code, but writing those constructs is not part of the tested material.

What is the format and passing score of the exam?

The exam has 45 multiple-choice questions delivered as an online timed exam with a 90-minute limit. According to the CodeHS Certifications FAQ, the passing score for Java is 50%. A new voucher is required for each attempt.

Which domain should I study first?

Start with Java Fundamentals and data types, since scope, input and output, primitives, and Strings underpin everything else. Then move through arrays and ArrayLists, loops and logic, classes and objects, and finish with recursion. Our study guide expands on this progression.

Are there prerequisites for taking the exam?

CodeHS states there are no prerequisites. It does recommend the CodeHS AP CSA course as preparation, but completing that course is not required to register. Remember to check each course topic against the five official headings, since the exam scope is narrower than a full AP-style syllabus.

Ready to pass your CHS-J1 exam?

Put this into practice with free CHS-J1 questions across every exam domain.