AP CSA 4.7 FRQ Practice: Integer Is Not int

Unit 4: Data Collections · Lesson 4.7 · FRQ Practice

Integer Is Not int

A free response question in the shape the exam uses: a stated contract, four rubric parts, and no main method handed to you. Worth 4 points.

Why this question is worth four points

Two Integer objects holding the same number can be different objects, and == compares objects rather than values. Java caches the small ones, so == is true up to 127 and false at 128, which is the most reliably surprising fact in the whole course. equals is always right.

What you are given

The driver passes you ints and Integer objects. Write a class named Boxes. Do not write a main method.

The question

  1. (a) public static boolean sameValue(Integer a, Integer b) returns whether the two hold the same number, correctly for every value.
  2. (b) public static int unbox(Integer a) returns the int inside.
  3. (c) public static Integer box(int a) returns an Integer holding that value.
  4. (d) public static int sum(Integer a, Integer b) returns the sum of the two values.

What the reader is looking for

  1. Write class Boxes with the four static methods described. No main method.
  2. Part (a) must be right for large values too. The driver deliberately tests numbers on both sides of the cache boundary.
  3. Autoboxing does parts (b), (c) and (d) for you. The point of the question is part (a).

Worked examples

These show what a correct answer prints. There are more cases you cannot see, and they use different values, so an answer built around just these numbers will fail.

Example 1 input
5 5
Example 1 output
true
true
5
5
10
Example 2 input
127 127
Example 2 output
true
true
127
127
254

Your answer

Main.java

Input for the Run button

How this is scored: your answer runs against every test case, and the fraction it passes becomes your score out of 4. That is not how a human AP reader marks a rubric, so treat the score as a check on whether your code works, and the rubric above as the thing you are actually practising.


  

  

Stuck?

Hint 1

a.equals(b) compares the values inside. a == b compares whether they are the same object, which is true for small cached values and false for large ones.

Hint 2

The driver builds one Integer with new, which ALWAYS makes a fresh object. Comparing it with == is false even when the number matches.

Hint 3

Parts (b), (c) and (d) need no conversion code. Java boxes and unboxes automatically wherever the types line up.

Before you submit

2 mistake(s) that lose points on this question

Each of these is a real error the grader catches. Check your answer against them before you submit, not instead of trying.

  • part (a) compares Integer objects with == instead of equals
  • part (d) returns the difference rather than the sum

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]