Section
1: Declarations and Access Control
• Write code that declares, constructs and
initializes arrays of any base type using any
of the permitted forms both for declaration and
for initialization.
• Declare classes, nested classes, methods,
instance variables, static variables and automatic
(method local) variables making appropriate use
of all permitted modifiers (such as public, final,
static, abstract, etc.). State the significance
of each of these modifiers both singly and in
combination and state the effect of package relationships
on declared items qualified by these modifiers.
• For a given class, determine if a default
constructor will be created and if so state the
prototype of that constructor.
• Identify legal return types for any method
given the declarations of all related methods
in this or parent classes.
Section 2: Flow control, Assertions, and
Exception Handling
• Write code using if and switch statements
and identify legal argument types for these statements.
• Write code using all forms of loops including
labeled and unlabeled, use of break and continue,
and state the values taken by loop counter variables
during and after loop execution.
• Write code that makes proper use of exceptions
and exception handling clauses (try, catch, finally)
and declares methods and overriding methods that
throw exceptions.
• Recognize the effect of an exception arising
at a specified point in a code fragment. Note:
The exception may be a runtime exception, a checked
exception, or an error (the code may include try,
catch, or finally clauses in any legitimate combination).
• Write code that makes proper use of assertions,
and distinguish appropriate from inappropriate
uses of assertions.
• Identify correct statements about the
assertion mechanism.
Section 3: Garbage Collection
• State the behavior that is guaranteed
by the garbage collection system.
• Write code that explicitly makes objects
eligible for garbage collection.
• Recognize the point in a piece of source
code at which an object becomes eligible for garbage
collection.
Section 4: Language Fundamentals
• Identify correctly constructed package
declarations, import statements, class declarations
(of all forms including inner classes) interface
declarations, method declarations (including the
main method that is used to start execution of
a class), variable declarations, and identifiers.
• Identify classes that correctly implement
an interface where that interface is either java.lang.Runnable
or a fully specified interface in the question.
• State the correspondence between index
values in the argument array passed to a main
method and command line arguments.
• Identify all Java programming language
keywords. Note: There will not be any questions
regarding esoteric distinctions between keywords
and manifest constants.
• State the effect of using a variable or
array element of any kind when no explicit assignment
has been made to it.
• State the range of all primitive formats,
data types and declare literal values for String
and all primitive types using all permitted formats
bases and representations.
Section 5: Operators and Assignments
• Determine the result of applying any operator
(including assignment operators and instance of)
to operands of any type class scope or accessibility
or any combination of these.
• Determine the result of applying the boolean
equals (Object) method to objects of any combination
of the classes java.lang.String, java.lang.Boolean
and java.lang.Object.
• In an expression involving the operators
&, |, &&, || and variables of known
values state which operands are evaluated and
the value of the expression.
• Determine the effect upon objects and
primitive values of passing variables into methods
and performing assignments or other modifying
operations in that method.
Section 6: Overloading, Overriding, Runtime
Type and Object Orientation
• State the benefits of encapsulation in
object oriented design and write code that implements
tightly encapsulated classes and the relationships
"is a" and "has a".
• Write code to invoke overridden or overloaded
methods and parental or overloaded constructors;
and describe the effect of invoking these methods.
• Write code to construct instances of any
concrete class including normal top level classes
and nested classes.
Section 7: Threads
• Write code to define, instantiate and
start new threads using both java.lang.Thread
and java.lang.Runnable.
• Recognize conditions that might prevent
a thread from executing.
• Write code using synchronized wait, notify
and notifyAll to protect against concurrent access
problems and to communicate between threads.
• Define the interaction among threads and
object locks when executing synchronized wait,
notify or notifyAll.
Section 8: Fundamental Classes in the
java.lang Package
• Write code using the following methods
of the java.lang.Math class: abs, ceil, floor,
max, min, random, round, sin, cos, tan, sqrt.
• Describe the significance of the immutability
of String objects.
• Describe the significance of wrapper classes,
including making appropriate selections in the
wrapper classes to suit specified behavior requirements,
stating the result of executing a fragment of
code that includes an instance of one of the wrapper
classes, and writing code using the following
methods of the wrapper classes (e.g., Integer,
Double, etc.):
• o doubleValue
• o floatValue
• o intValue
• o longValue
• o parseXxx
• o getXxx
• o toString
• o toHexString
Section 9: The Collections Framework
• Make appropriate selection of collection
classes/interfaces to suit specified behavior
requirements.
• Distinguish between correct and incorrect
implementations of hashcode methods.
|