1 Vergelijking Sun certificering voor Java en het

advertisement
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) Vergelijking Sun certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit Nederland Inleiding Op het gebied van scholing van de taal Java zijn er vele aanbieders op de markt. De certificering van het resultaat van die scholing is van groot belang. In de praktijk speelt de certificering van Sun op het gebied van Java een dominante rol. Omdat ook de Open Universiteit Nederland (OU) scholing en certificering op het gebied van Java verzorgt, onder andere in de vorm van het CPP Gecertificeerd Javaprogrammeur, achtte de OU het zinvol een vergelijking te trekken tussen de CPP‐opleiding en de certificering door Sun. De paragraaf Afbakening beschrijft welke Sun‐examens vergeleken gaan worden met de exameneisen van het CPP‐Java van de OU. De paragraaf Generieke verschillen in de vorm van de examinering beschrijft de verschillen in de vorm van de examinering bij Sun en de vorm van toetsing bij het CPP‐Java. Deze vergelijking is in 2003 voor het eerst uitgevoerd. Sindsdien is er veel veranderd, reden om de vergelijking nu in 2009 nog eens te herhalen. Dit document is gebaseerd op de stand van zaken op 1‐11‐
2009. In de loop van 2010 zal de cursus Distributed Computing als onderdeel van het CPP‐Java vervangen worden door de cursus Web Applicaties: the server side. Hierdoor zal op wat details deze vergelijking wat moeten worden aangepast Afbakening Sun kent een aantal examens die met elkaar samenhangen zoals figuur 1 toont. FIGUUR 1 De verschillende examens van SUN In de vergelijking betrekken we de volgende SUN‐examens: • Sun Certified Java Associate (SCJA) • Sun Certified Java Programmer (SCJP) • Sun Certified Java Developer (SCJD) De inhoud van het CPP‐Java is gebaseerd op (delen van) de volgende cursussen van de Open Universiteit Nederland: W07A0A Inleiding Objectgeoriënteerd analyseren en ontwerpen met UML (Inl. OO) 1
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) T25151 Objectgeoriënteerd programmeren in Java 1 (OPiJ1) T42241 Objectgeoriënteerd programmeren in Java 2 (OPiJ2) T21321 Distributed Computing (DC) W07A0E Inleiding datastructuren en algoritmen (Inl. D&A) T50211 Programmeerpracticum De onderdelen van Java die in het CPP‐Java behandeld en getoetst worden, komen grofweg overeen met de onderdelen van Java die in de drie genoemde examens van Sun getoetst worden. De onderdelen van de Sun‐examens en die van het CPP‐Java zijn gebaseerd op Java 1.6 . Figuur 2 laat zien dat het CPP‐Java en de examens SCJA, SCJP en SCJD elkaar voor een groot deel overlappen, hetgeen in het overige deel van deze vergelijking aangetoond zal worden. Sommige onderdelen van SCJA, SCJP en SCJD worden niet volledig gedekt door het CPP‐Java, anderzijds komen in het CPP‐Java onderdelen uit SCWCD aan de orde. Open Universiteit
Sun
Programmeer
practicum
Inleiding
datastructuren en
algoritmes
Distributed computing
Objectgeorienteerd
programmeren in
Java 2
Objectgeorienteerd
programmeren in
Java 1
Inleiding OO
FIGUUR 2 De verschillende examens van SUN Generieke verschillen in vorm en inhoud van de examinering Alvorens in te gaan op een vergelijking van onderdelen die in beide examenprogrammaʹs voorkomen, staan we eerst even stil bij de manier van toetsen. Sun Certified Java Associate (SCJA) wordt geëxamineerd in de vorm van een meerkeuzetoets van 51 vragen die in 115 minuten beantwoord moeten worden. De toets is een geslotenboek‐toets, dat wil zeggen dat de student tijdens de toets geen hulpbronnen mag raadplegen. Het SCJP‐examen bestaat uit 60 meerkeuze vragen die in 180 minuten beantwoord moeten worden, ook in geslotenboek‐vorm. De toetsing van de onderdelen van het CPP‐Java geschiedt in de regel door middel van programmeeropdrachten en een schriftelijke toets van 60‐120 minuten. Deze toets is een openboek toets. 2
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) Sun Certified Developer for Java 2 Platform wordt geëxamineerd in twee delen. In deel 1 maakt de student een programmeeropdracht. In deel 2 schrijft de student in een zitting van 120 minuten een essay over de opdracht. Het onderdeel programmeerpracticum van het CPP‐Java komt hier voor een redelijk deel mee overeen. De grote verschillen betreffen dus SCJA en SCJP. Na het bestuderen van een aantal voorbeeldexamens van Sun kunnen de volgende generieke verschillen vastgesteld worden tussen de Sun‐examens SCJA en SCJP en de toetsing van het Java‐CPP (hier verder OU te noemen): • Bij SUN moet de student beschikken over parate kennis, bij de OU mag de student hulpbronnen raadplegen. • SUN is theoretisch van aard, de OU is zowel praktisch als theoretisch. • Het accent van SUN ligt voor een belangrijk deel op kennis van de syntaxis van Java met inbegrip van allerlei bijzondere gevallen. Bij de OU ligt het accent op inzicht in concepten en het oplossen van programmeerproblemen toegepast op Java. • Toetsing van SUN is in multiple choice vorm, bij de OU bestaat de toetsing uit open vragen en practicumopdrachten. Vergelijking van de eisen van de Sun‐examens SCJA,SCJP en SCJD en de eisen van het CPP‐Java van de OU In bijlage 1 staat een gedetailleerde vergelijking van de exameneisen van SUN en die van (een deel van) het CPP‐Java. Omdat Het CPP‐Java uit diverse onderdelen (cursussen) bestaat, wordt binnen het CPP‐
Java ook gerefereerd aan de specifieke cursus waar een bepaald onderwerp aan de orde komt. In de gedetailleerde vergelijking zijn de exameneisen van Sun als uitgangspunt genomen. Er wordt bekeken of en zo ja waar die onderwerpen in het CPP‐Java aan de orde komen. Onderwerpen van SUN die geen onderdeel zijn van het CPP‐Java worden aangegeven. Op basis van deze gedetailleerde vergelijking is tabel 1 gemaakt met daarin de onderdelen van SUN die niet door het CPP‐Java afgedekt worden. Daarnaast is een tabel 2 gemaakt van onderdelen van het CPP‐
Java die niet door SUN afgedekt worden. 3
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) SUN EXAMEN SCJA SCJP TABEL 1 Onderdeel Inl. OO Lijst van onderwerpen die niet afgedekt worden door het CPP‐Java Native, transient en volatile Break en continue Geen expliciete behandeling van het werken met javac en classpath Niet alle ranges van primitieve typen Geen expliciete behandeling van J2SE, J2ME en J2EE Weinig aandacht voor karakteristieken van thin client en fat client met bijbehorende technieken als Javascript, midlets etc Geen aandacht voor EJB en XML‐
gerelateerde technieken Argumentenlijst van variabele lengte en covariante return waarde Stringbuilder Wait, notify en notifyAll Reguliere expressies(summier) System.gc en finalization Onderdelen van SUN die niet afgedekt worden door het CPP‐Java Opmerkingen Inleiding oo; UML‐diagrammen: use case model met use case beschrijvingen, klassendiagrammen sequencediagrammen en state diagrams komen aan de orde In de overige onderdelen worden meerdere malen gebruik gemaakt van klassendiagrammen en sequencediagrammen OPiJ1 Toestandsdiagrammen waarmee het gedrag van objecten begrepen kan worden ook bij constructie en uitvoering van methoden. Algoritmiek in de vorm van zoekalgoritmes en combineeralgoritmes waarbij een reeks doorlopen moet worden. Tweedimensionale array’s. Gregorian Calendar. Vaardigheid om de API van een onbekende klasse te kunnen lezen en de klasse te kunnen gebruiken. In staat zijn zelf klassen te specificeren , te implementeren en te voorzien van Javadoc commentaar. Bouwen van een grafische user interface Gebruik van JUnit om te testen. Gebruik applets op Web‐pagina’s OPiJ2 Toepassing klassendiagrammen en sequence diagrammen. Designpatterns: Composite pattern, MVC, Decorator. Dynamische binding met daarbij abstracte klassen en interfaces. Tekenen van componenten (paintComponent). Voorbeeld van een wat groter ontwerp waarin allerlei concepten als dynamische binding, event handling, exceptions en MVC worden toegepast. Koppeling met Database: Statement en PreparedStatement DC Ongeveer de helft gaat over networking inclusief sockets, servlets, rmi etc. Deze stof vormt een deel van Sun Certified Web Component Developer for Java 2 Platform, Enterprise Edition (J2EE[tm] Inl. D&A Een aantal datastructuren uit het Java Collection Framework. recursie , bomen, algoritmen. Programmeer‐ Het ontwikkelen van een Web‐applicatie met servlets waarbij gebruik gemaakt wordt practicum van een database en een sessionobject TABEL 2 Onderdelen van het CPP‐Java die niet afgedekt worden door de eisen van SCJP en SCDJ 4
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) Conclusie Op basis van de vergelijking mogen we stellen dat de exameneisen van SUN voor ongeveer 90‐95% afgedekt worden door het CPP‐Java. Anderzijds geldt dat de eisen van het CPP‐Java voor zoʹn 75‐85% afgedekt worden door SUN. Probleem bij de vergelijking is wel dat er geen expliciete (Java‐)eisen voor het SCJD beschikbaar zijn. Tabel 2 toont aan dat het CPP‐Java een flink aantal zaken biedt, die niet direct in de eisen van de Sun‐
certificering terug te vinden zijn. Op basis van deze vergelijking kan gesteld worden dat er een grote mate van overdekking is tussen het CPP‐Java van de Open Universiteit en de examens van Sun. Voor het beroepenveld zullen er geen grote verschillen in kennis zijn tussen een student die het CPP‐Java met goed gevolg gedaan heeft of een student die de Sun examens behaald heeft. Wel zal een student van het CPP‐Java over meer programmeerervaring beschikken door de opdrachten die in de loop van de cursussen gemaakt moeten worden. 5
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) BIJLAGE 1 Eisen Sun Certified Java Associate in relatie tot de behandelde stof in het CPP‐Java Sun Certified Java Associate CPP‐java onderdelen waarin de eisen afgedekt worden OPiJ1, meerdere leereenheden Section 1: Fundamental Object-Oriented
Concepts
Describe, compare, and contrast primitives
(integer, floating point, boolean, and character),
enumeration types, and objects.
Describe, compare, and contrast concrete classes, abstract classes, and interfaces, and how inheritance applies to them. Describe, compare, and contrast class compositions, and associations (including multiplicity: (one‐to‐one, one‐to‐many, and many‐
to‐many), and association navigation. Describe information hiding (using private attributes and methods), encapsulation, and exposing object functionality using public methods; and describe the JavaBeans conventions for setter and getter methods. Describe polymorphism as it applies to classes and interfaces, and describe and apply the ʺprogram to an interfaceʺ principle. Section 2: UML Representation of Object-Oriented
Concepts
Recognize the UML representation of classes,
(including attributes and operations, abstract
classes, and interfaces), the UML representation of
inheritance (both implementation and interface), and
the UML representation of class member visibility
6
Opmerkingen OpiJ2: Le 1,2 , 3 en 4 OPIJ2 Inleiding OO, OPIJ1: le 6 Inleiding OO, OpiJ2: Le 1,2 , 3 en 4 Inleiding OO Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) modifiers (-/private and +/public).
. Recognize the UML representation of class associations,
compositions, association multiplicity indicators, and
association navigation indicators
Inleiding OO Section 3: Java Implementation of Object-Oriented
Concepts
OPIJ1 Develop code that uses primitives, enumeration
types, and object references, and recognize literals of these types.
OPIJ2 Develop code that declares concrete classes,
abstract classes, and interfaces, code that supports implementation and interface inheritance, code that declares instance attributes and methods, and
code that uses the Java access modifiers: private
and public.
Develop code that implements simple class
OPIJ1 associations, code that implements multiplicity
using arrays, and recognize code that implements
compositions as opposed to simple associations,
and code that correctly implements association
navigation.
Develop code that uses polymorphism for both
classes and interfaces, and recognize code that
uses the "program to an interface" principle.
Section 4: Algorithm Design and Implementation
OPIJ2: le4 OPIJ1: le 9,10 en 11 Describe, compare, and contrast these three
fundamental types of statements: assignment,
conditional, and iteration, and given a description of an algorithm, select the appropriate type of
statement to design the algorithm.
Given an algorithm as pseudo-code, determine the correct scope for a variable used in the algorithm,
7
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) and develop code to declare variables in any of the
following scopes: instance variable, method
parameter, and local variable.
OPIJ1: le 9,10 en 11 Given an algorithm as pseudo-code, develop
method code that implements the algorithm using
conditional statements (if and switch), iteration
statements (for, for-each, while, and do-while),
OPIJ1: le 9,10 en 11 assignment statements, and break and continue
statements to control the flow within switch and
iteration statements.
OPIJ1: le 9,10 en 11 break en continue worden niet behandeld Given an algorithm with multiple inputs and an
OPIJ1 output, develop method code that implements the
algorithm using method parameters, a return type,
and the return statement, and recognize the effects
when object references and primitives are passed
into methods that modify them.
Given an algorithm as pseudo-code, develop code OPIJ1 that correctly applies the appropriate operators
including assignment operators (limited to: =, +=, =), arithmetic operators (limited to: +, -, *, /, %, ++, -), relational operators (limited to: <, <=, >, >=, ==,
!=), logical operators (limited to: !, &&, ||) to produce
a desired result. Also, write code that determines
the equality of two objects or two primitives.
Develop code that uses the concatenation operator OPIJ1 (+), and the following methods from class String:
charAt, indexOf, trim, substring, replace, length,
startsWith, and endsWith.
Section 5: Java Development Fundamentals
OPIJ1 Describe the purpose of packages in the Java
language, and recognize the proper use of import
and package statements.
Demonstrate the proper use of the "javac"
8
Summiere behandeling van javac Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) command (including the command-line options: -d
and –classpath), and demonstrate the proper use
of the "java" command (including the command-line
options: -classpath, -D and –version).
Describe the purpose and types of classes for the
following Java packages: java.awt, javax.swing,
java.io, java.net, java.util. Section 6: Java Platforms and Integration
Technologies
Distinguish the basic characteristics of the three
Java platforms: J2SE, J2ME, and J2EE, and given a high-level architectural goal, select the
appropriate Java platform or platforms.
Describe at a high level the benefits and basic
Distribted Computing: Veel uitgebreidere characteristics of RMI.
behandeling: student maakt rmi‐applicatie Describe at a high level the benefits and basic
OPIJ2: le 10 characteristics of JDBC, SQL, and RDBMS
technologies
Describe at a high level the benefits and basic
Distributed Computing; ook details en characteristics of JNDI, messaging, and JMS
implementatie m.b.v. jms technologies.
Section 7: Client Technologies
Describe at a high level the basic characteristics,
benefits and drawbacks of creating thin-clients
using HTML and JavaScript and the related
deployment issues and solutions.
Describe at a high level the basic characteristics,
benefits, drawbacks, and deployment issues
related to creating clients using J2ME midlets.
Describe at a high level the basic characteristics,
benefits, drawbacks, and deployment issues
related to creating fat-clients using Applets.
9
Er wordt verder geen expliciet gebruik gemaakt van de aanroep van de java compiler; Alles verloopt via Eclipse Er wordt geen expliciete aandacht besteed aan dit onderwerp Aan deze karakteriseringen wordt geen expliciete aandacht besteed idem idem Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) Describe at a high level the basic characteristics,
benefits, drawbacks, and deployment issues
related to creating fat-clients using Swing.
idem Section 8: Server Technologies
Distributed computing Geen aandacht voor EJB en de XML‐gerelateerde technieken Describe at a high level the basic characteristics of: EJB,
servlets, JSP, JMS, JNDI, SMTP, JAX-RPC, Web
Services (including SOAP, UDDI, WSDL, and XML), and
JavaMail.
Describe at a high level the basic characteristics of
Distributed computing servlet and JSP support for HTML thin-clients.
Describe at a high level the use and basic characteristics of EJB session, entity and message-driven beans.
Describe at a high level the fundamental benefits and
drawbacks of using J2EE server-side technologies, and
describe and compare the basic characteristics of the
web-tier, business-tier, and EIS tier.
Sun Certified Java Programmer Section 1: Declarations, Initialization and Scoping
Develop code that declares classes (including
abstract and all forms of nested classes), interfaces,
and enums, and includes the appropriate use of
package and import statements (including static
imports).
Develop code that declares an interface.
Develop code that implements or extends one or
more interfaces. Develop code that declares an
abstract class. Develop code that extends an
abstract class.
Develop code that declares, initializes, and uses
primitives, arrays, enums, and objects as static,
instance, and local variables. Also, use legal
identifiers for variable names.
Develop code that declares both static and nonstatic methods, and - if appropriate - use method
names that adhere to the JavaBeans naming
10
CPP‐java onderdelen waarin de eisen afgedekt worden OPIJ1 en OPIJ2 Geen aandacht voor EJB Geen aandacht voor EJB Opmerkingen Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) standards. Also develop code that declares and
uses a variable-length argument list.
Given a code example, determine if a method is
correctly overriding or overloading another method,
and identify legal return values (including covariant
returns), for the method.
Given a set of classes and superclasses,
develop constructors for one or more of the classes.
Given a class declaration, determine if a default
constructor will be created, and if so, determine the
behavior of that constructor. Given a nested or nonnested class listing, write code to instantiate the
class.
Geen argumenten lijst met variabele lengte en covariant return type Section 2: Flow Control
Develop code that implements an if or switch
statement; and identify legal argument types for
these statements.
Develop code that implements all forms of loops
and iterators, including the use of for, the enhanced
for loop (for-each), do, while, labels, break, and
continue; and explain the values taken by loop
counter variables during and after loop execution.
Develop code that makes use of assertions, and
distinguish appropriate from inappropriate uses of
assertions.
Develop code that makes 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 that the
exception may be a runtime exception, a checked
exception, or an error.
Recognize situations that will result in any of the
following being thrown:
ArrayIndexOutOfBoundsException,ClassCastException,
IllegalArgumentException, IllegalStateException,
11
OPIJ1: le 10 OPIJ1: le 11 OPIJ1: le 13 OPIJ2: le7 OPIJ2:le7 OPIJ2: le 7 Binnen JUnit Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) NullPointerException, NumberFormatException,
AssertionError, ExceptionInInitializerError,
StackOverflowError or NoClassDefFoundError.
Understand which of these are thrown by the virtual
machine and recognize situations in which others should
be thrown programatically. Section 3: API Contents
Develop code that uses the primitive wrapper
classes (such as Boolean, Character, Double,
OPIJ1:le7 Integer, etc.), and/or autoboxing & unboxing.
Discuss the differences between the String,
StringBuilder, and StringBuffer classes.
Given a scenario involving navigating file
systems, reading from files, or writing to files,
OPIJ2: le 9 develop the correct solution using the following
classes (sometimes in combination), from java.io:
BufferedReader,BufferedWriter, File, FileReader,
FileWriter and PrintWriter.
Develop code that serializes and/or deOPIJ2:le9 serializes objects using the following APIs from
java.io: DataInputStream, DataOutputStream,
FileInputStream, FileOutputStream,
ObjectInputStream, ObjectOutputStream and
Serializable.
OPIJ1:le9 Use standard J2SE APIs in the java.text
package to correctly format or parse dates,
numbers, and currency values for a specific locale;
and, given a scenario, determine the appropriate
methods to use if you want to use the default locale or a specific locale. Describe the purpose and use of the java.util.Locale class.
Write code that uses standard J2SE APIs in the
OPIJ1:le9 java.util and java.util.regex packages to format or
parse strings or streams. For strings, write code that
uses the Pattern and Matcher classes and the
String.split method. Recognize and use regular
expression patterns for matching (limited to: . (dot), *
(star), + (plus), ?, \d, \s, \w, [], ()). The use of *, +,
and ? will be limited to greedy quantifiers, and the
parenthesis operator will only be used as a grouping
mechanism, not for capturing content during
12
Geen behandeling StringBuilder Weinig aandacht voor reguliere expressies Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) matching. For streams, write code using the
Formatter and Scanner classes and the
PrintWriter.format/printf methods. Recognize and
use formatting parameters (limited to: %b, %c, %d,
%f, %s) in format strings.
Section 4: Concurrency
OPIJ2: le 8, Distributed computing Geen behandeling wait, notify., notifyall Inleiding OO OPIJ2: le2 OPIJ2: le2 en 3 OPIJ2:le3 Write code to define, instantiate, and start new
threads using both java.lang.Thread and
java.lang.Runnable.
Recognize the states in which a thread can
exist, and identify ways in which a thread can
transition from one state to another.
Given a scenario, write code that makes
appropriate use of object locking to protect static or
instance variables from concurrent access
problems.
Given a scenario, write code that makes appropriate use
of wait, notify, or notifyAll. Section 5: OO Concepts
Develop code that implements tight
encapsulation, loose coupling, and high cohesion in
classes, and describe the benefits.
Given a scenario, develop code that
demonstrates the use of polymorphism. Further,
determine when casting will be necessary and
recognize compiler vs. runtime errors related to
object reference casting.
Explain the effect of modifiers on inheritance
with respect to constructors, instance or static
variables, and instance or static methods.
Given a scenario, develop code that declares
and/or invokes overridden or overloaded methods
and code that declares and/or invokes superclass,
13
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) overridden, or overloaded constructors.
Develop code that implements "is-a" and/or "has-a"
relationships. Section 6: Collections / Generics
Given a design scenario, determine which
collection classes and/or interfaces should be used OPIJ2: le 5 to properly implement that design, including the use of the Comparable interface.
Distinguish between correct and incorrect
overrides of corresponding hashCode and equals
methods, and explain the difference between ==
and the equals method.
Write code that uses the generic versions of the Collections API, in particular, the Set, List, and Map Inleiding datastructuren interfaces and implementation classes. Recognize
OPIJ2: le5 the limitations of the non-generic Collections API
and how to refactor code to use the generic
versions.
Develop code that makes proper use of type
Inleiding datastructuren parameters in class/interface declarations, instance OPIJ2: le5 variables, method arguments, and return types; and
write generic methods or methods that make use of wildcard types and understand the similarities and
differences between these two approaches.
Use capabilities in the java.util package to write code to
Inleiding datastructuren manipulate a list by sorting, performing a binary search,
or converting the list to an array. Use capabilities in the
java.util package to write code to manipulate an array by
sorting, performing a binary search, or converting the
array to a list. Use the java.util.Comparator and
java.lang.Comparable interfaces to affect the sorting of
lists and arrays. Furthermore, recognize the effect of the
"natural ordering" of primitive wrapper classes and
java.lang.String on sorting. Section 7: Fundamentals
14
Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) Given a code example and a scenario, write
code that uses the appropriate access modifiers,
package declarations, and import statements to
interact with (through access or inheritance) the
code in the example.
Given an example of a class and a commandline, determine the expected runtime behavior.
Determine the effect upon object references and
primitive values when they are passed into methods
that perform assignments or other modifying
operations on the parameters.
Given a code example, recognize the point at
which an object becomes eligible for garbage
collection, and determine what is and is not
guaranteed by the garbage collection system.
Recognize the behaviors of System.gc and
finalization.
Given the fully-qualified name of a class that is
deployed inside and/or outside a JAR file, construct
the appropriate directory structure for that class.
Given a code example and a classpath, determine
whether the classpath will allow the code to compile
successfully.
Write code that correctly applies the appropriate
operators including assignment operators (limited to: =,
+=, -=), arithmetic operators (limited to: +, -, *, /, %, ++, -), relational operators (limited to: <, <=, >, >=, ==, !=), the
instanceof operator, logical operators (limited to: &, |, ^, !,
&&, ||), and the conditional operator ( ? : ), to produce a
desired result. Write code that determines the equality of
two objects or two primitives. 15
OpiJ1 en 2 OPIJ1 OPIJ1 en 2 Geen behandeling voor System.gc en finalization Vergelijking CPP Gecertificeerd Javaprogrammeur en Sun certificering (versie november 2009) 16
Download