|
|
SCJP
1.2 Exam Objectives (check out java.sun.com
for recent updates)
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, 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.
- For a given class,
determine if a default constructor will be created, and if so, state
the prototype of that constructor.
- State the legal return
types for any method given the declarations of all related methods in
this or parent classes
Section 2: Flow control 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 control
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.
Section 3: Garbage
Collection
- State the behavior
that is guaranteed by the garbage collection
system, and write code that explicitly makes objects eligible for
collection.
Section 4: Language
Fundamentals
- Identify correctly
constructed source files, 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.
- 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 and correctly constructed identifiers.
- 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 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, instance of, and casts 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, inner classes, static inner classes, and
anonymous inner 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, or 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 8: The java.awt
Package
- Write code using
component, container, and LayoutManager classes of
the java.awt package to present a Graphical User Interface with
specified appearance and resize behavior, and distinguish the
responsibilities of layout managers from those of containers.
- 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 9: 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, and sqrt.
- Describe the significance
of the immutability of string objects.
Section 10: The java.util
Package
- Make appropriate selection
of collection classes/interfaces to suit specified behavior
requirements.
Section 11: The java.io
Package
- Write code that uses
objects of the file class to navigate a file system.
- Write code that uses
objects of the classes InputStreamReader and
outputStreamWriter to translate between Unicode and either platform
default or ISO 8859-1 character encoding and Distinguish between
conditions under which platform default encoding conversion should be
used and conditions under which a specific conversion should be used.
- Select
valid constructor arguments for FilterInputStream and
FilterOutputStream subclasses from a list of classes in the
java.io.package.
- Write appropriate code to
read, write and update files using FileInputStream, FileOutputStream,
and RandomAccessFile objects.
- Describe
the permanent effects on the file system of constructing and using
FileInputStream, FileOutputStream, and RandomAccessFile objects.
|
|
|