Knowing Java isn't enough. To score a 5 you need to know how the test is built, how it's scored, and where most students lose points.
| Section | Questions | Time | Weight |
|---|---|---|---|
| I ยท Multiple Choice | 40 questions | 90 minutes | 50% |
| II ยท Free Response | 4 questions | 90 minutes | 50% |
Total: 3 hours. Both sections weighted equally. Calculator not permitted. The Java Quick Reference is provided.
| Score | Meaning | Approx. % Earned |
|---|---|---|
| 5 | Extremely well qualified | ~72%+ |
| 4 | Well qualified | ~58โ71% |
| 3 | Qualified | ~42โ57% |
| 2 | Possibly qualified | ~30โ41% |
| 1 | No recommendation | < 30% |
To get a 5 you need roughly 29 of 40 MCQs plus 26 of 36 FRQ points. You don't need to be perfect โ you need to be consistent.
| Unit | Title | Weight |
|---|---|---|
| 1 | Using Objects and Methods | 15โ25% |
| 2 | Selection and Iteration | 25โ35% |
| 3 | Class Creation | 10โ18% |
| 4 | Data Collections | 30โ40% |
If you only have time for two units, prioritize Unit 2 and Unit 4 โ together they're up to 75% of the multiple-choice section.
7 / 2 is 3, not 3.5. Watch every division operator.== on Strings. Use .equals() for content comparison. == on objects compares references.substring(i, j) is inclusive of i, exclusive of j.length() (method). Arrays use length (field, no parens).s.toUpperCase() without s = ... changes nothing.(double)(7/2) is 3.0 (cast after int division). Cast at least one operand before dividing.i < arr.length not <=. The last valid index is length - 1.if statements all run. Use else if for mutually exclusive branches.return; (no value). Or just let it fall through.Cross out 2 wrong answers first. The remaining two are usually a real choice vs. a "trap" choice that has one specific flaw.
When you can't tell what a loop does, plug in arr = {1, 2, 3} and run it by hand. The math takes 30 seconds and you'll be certain.
Wrong answers cost nothing. NEVER leave one blank. Even random guessing gives you 25% on a question you can't solve.
40 questions in 90 minutes = 2.25 minutes each. If you're stuck past 2 minutes, mark it and move on. Come back if you have time.
getName() or a helper method, USE IT. Re-implementing it costs points.{ }, every line ends with ;, every non-void method returns on every path.java.util.ArrayList and other AP-listed classes are available. Don't write import statements.private helper. Graders reward decomposition.// loop through array, find max... if you must.\" for a literal double-quote: "She said \"hi\""..equals(), and the for-loop bounds. These are the most common point-losses.These show up year after year. Be able to write them from scratch.
n%10 and n/=10add(i, x)remove(i)These method signatures are provided to you during the exam. You don't need to memorize them perfectly โ but know what each does.
int length()String substring(int from, int to) โ to is exclusiveString substring(int from)int indexOf(String str)boolean equals(String other)int compareTo(String other)static int abs(int x) & static double abs(double x)static double pow(double base, double exp)static double sqrt(double x)static double random()Integer.MIN_VALUE, Integer.MAX_VALUEint intValue(), double doubleValue()int size()boolean add(E obj)void add(int index, E obj)E get(int index)E set(int index, E obj)E remove(int index)