|
Objectives for the
Sun Certified Programmer for the Java 2 Platform
Section Title 1: Declarations and Access
Control
1) Write code
that declares constructs and initializes arrays of any base type using
any of the permitted forms both for declaration and for initialization.
2) Declare classes
inner classes methods instance variables static variables and automatic
(method local) variables making appropriate use of all permitted modifiers
(such as public final static abstract and so forth). 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.
3) For a given
class determine if a default constructor will be created and if so state
the prototype of that constructor.
4) State the
legal return types for any method given the declarations of all related
methods in this or parent classes.
Section Title 2: Flow Control and Exception
Handling
5) Write code
using if and switch statements and identify legal argument types for
these statements.
6) 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.
7) Write code
that makes proper use of exceptions and exception handling clauses (try
catch finally) and declares mthods and overriding methods that throw
exceptions.
Section Title 3: Garbage Collection
8) State the
behavior that is guaranteed by the garbage collection system and write
code that explicitly makes objects eligible for collection.
Section Title 4: Language Fundamentals
9) Identify correctly
constructed package declarations import statements class declarations
(of all forms including inner classes) interface declarations and implementations
(for java.lang.Runnable or other interface described in the test) method
declarations (including the main method that is used to start execution
of a class) variable declarations and identifiers.
10) State the
correspondence between index values in the argument array passed to
a main method and command line arguments.
11) Identify
all Java programming language keywords.
12) State the
effect of using a variable or array element of any kind when no explicit
assignment has been made to it.
13) State the
range of all primitive data types and declare literal values for String
and all primitive types using all permitted formats bases and representations.
14) Write code
to implement listener classes and methods and in listener methods extract
information from the event to determine the affected component mouse
position nature and time of the event. State the event classname for
any specified event listener interface in the java.awt.event package.
Section Title 5: Operators and Assignments
15) Determine
the result of applying any operator including assignment operators and
instanceof to operands of any type class scope or accessibility or any
combination of these.
16) 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.
17) In an expression
involving the operators & | && || and variables of known values state
which operands are evaluated and the value of the expression.
18) Determine
the effect upon objects and primitive values of passing variables into
methods and performing assignments or other modifying operations in
that method.
Section Title 6: Overloading Overriding
Runtime Type and Object Orientation
19) 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".
20) Write code
to invoke overridden or overloaded methods and parental or overloaded
constructors; and describe the effect of invoking these methods.
21) Write code
to construct instances of any concrete class including normal top level
classes inner classes static inner classes and anonymous inner classes.
Section Title 7: Threads
22) Write code
to define instantiate and start new threads using both java.lang.Thread
and java.lang.Runnable
23) Recognize
conditions that might prevent a thread from executing.
24) Write code
using synchronized wait notify and notifyAll to protect against concurrent
access problems and to communicate between threads. Define the interaction
between threads and between threads and object locks when executing
synchronized wait notify or notifyAll.
Section Title 8: The java.awt package -
Layout
25) Write code
to implement listener classes and methods and in listener methods extract
information from the event to determine the the affected component mouse
position nature and time of the event. State the event clasname for
any specified event listener interface in the java.awt.event package.
26) Write code
using component container and layout manager classes of the java.awt
package to present a GUI with specified appearance and resize the behavior
and distinguish the responsibilities of layout managers from those of
containers. (includes GridBagLayout)
Section Title 9: The java.lang package
27) Determine the result
of applying any operator including assignment operators and instanceof
to operands of any type class scope or accessibility or any combination
of these.
28) Write code
using the following methods of the java.lang.Math class: abs ceil floor
max min random round sin cos tan sqrt.
29) Describe
the significance of the immutability of String objects.
Section Title 10: The java.util package
30) Make appropriate
selection of collection classes/interfaces to suit specified behavior
requirements
Section Title 11: The java.io package
31) Write
code that uses objects of the file class to navigate a file system.
32) Write
code that uses objects of the classes InputStreamReader and OutputStreamWriter
to translate between Unicode and either platform default or ISO 8859-1
character encodings.
33) Destinguish
between conditions under which platform default encoding conversion
should be used and conditions under which a specific conversion should
be used.
34) Select valid
constructor arguments for FilterInputStream and FilterOutputStream subclasses
from a list of classes in the java.io.package.
35) Write appropriate
code to read, write and update files using FileInputStream, FileOutputStream,
and RandomAccessFile objects.
36) Describe
the permanent effects on the file system of constructing and using FileInputStream,
FileOutputStream, and RandomAccessFile objects
|