Having already taken two tests in this course, you should be familiar with the kinds of questions likely to be on the final exam. For more specific guidance, the following is offered.
In recent days we discussed the Selection Sort and Insertion Sort algorithms. Given code that implements one of these, plus an array to which it is to be applied, you should be able to give a precise account of what happens during execution. For example, show the contents of the array after each iteration of the main loop. (See Elementary Sorting Algorithms.)
Near the end of the semester, we discussed recursion. Given a recursive method (i.e., one that calls itself) and value(s) provided to it via its parameter(s), be able to trace its execution by showing —for each "instance" of the method that comes into existence as a result of an initial call from outside the method— the values of the parameters that it receives and the value that it returns. (As an example, see the table to the right of the sumOfRange() method here.) Also, you might be asked to show what the method prints (if anything) or to apprehend and describe its purpose.
One of the keys to designing such a class is to choose a set of instance variables that, when utilized in tandem, support all the desired capabilities/functionalities of objects of that class. (Such capabilities are those manifested in the public methods of the class). A key, then, to understanding how such objects are able to exhibit their capabilities is to understand how the instance variables are used.
Do not be surprised if there is an exam problem that gauges your understanding of how instance variables are utilized in a Java class that you have encountered in lecture or lab, or one that is similar. For example, you should understand how each of the instance variables of a TossableCoin object contributes to that object's ability to carry out its various operations, and how the values of those variables change as a result of calls to the class's mutator methods.
It would not be surprising if the code you were asked to write is closely related to code that you would have written in completing a programming assignment.