Zweite, aktualisierte und erweiterte Auflage Terence Gronowski SCJP Sun Certified Java Programmer Vorbereitung auf die Java 6-Zertifizierung: CX-310-065 / CX-310-066 Die neuen Java 6-Prüfungen: CX-310-065 und CX-310-066 Gezielte und strukturierte Vorbereitung Deckt alle Prüfungsziele ab Vorwort ® Die Sun Certified Java Programmer-Prüfung ist das solide Fundament für die korrekte objektorientierte Programmierung mit Java. Der Prüfungsumfang umfasst zwar nur die Konsolenprogrammierung, die muss man aber bis ins letzte Detail und in allen Varianten beherrschen. Um ein vollständiges Programm erstellen zu können, werden zusätzlich noch Kenntnisse in der Datenbankanbindung und in der Programmierung von grafischen Benutzerschnittstellen benötigt. Sehr schlecht ist, mit der grafischen Programmierung zu beginnen, wenn man die Programmiergrundlagen, wie sie in der SCJP-Prüfung verlangt werden, nicht beherrscht! Daraus resultieren dann unter Umständen sehr schwer zu wartende und langsame Anwendungen. Wie sieht nun die aktuelle SCJP-Prüfung für Java 6 aus? Es sind immer noch 72 Fragen, aber nun muss man 47 Fragen richtig beantwortet haben, anstatt wie früher nur 43 Fragen. Dafür hat man anstatt 175 Minuten jetzt 210 zur Verfügung, d.h. für die vier Fragen mehr stehen einem 35 Minuten zur Verfügung, also fast 9 Minuten pro Frage. Obwohl die Fragestellung in Deutsch gehalten ist, sind die Programmbeispiele in Englisch, also unverändert von der englischsprachigen Prüfung übernommen. Positiv an der Prüfung gegenüber der Vorgängerprüfung ist, dass man mit 3,5 Stunden keinen so großen Zeitdruck wie früher mehr hat. Negativ ist, dass man sozusagen in allen Teilbereichen immer 65 %, d.h. mindestens 47 richtige Antworten oder mehr benötigt. Da bleibt wenig Spielraum, um ein Manko in einem Thema mit einem anderen Thema zu kompensieren. Wie ist der Prüfungsstoff beschaffen? Detailkenntnisse sind wichtig: Eine in Java 6 neue Klasse ist zum Beispiel die Klasse System.Console. Speziell an dieser Klasse ist, dass es mit Console.readPassword() eine Methode gibt, die es erlaubt, Passwörter ohne Echo von der Konsole einzulesen. Sie denken sich jetzt sicher, dass diese neue Einlesemöglichkeit in der Prüfung getestet wird? Nein, weit gefehlt, getestet wird der normale Konsoleninput mit System.Console (obwohl sich eigentlich niemand für diese Möglichkeit interessiert, da es z.B. schon das Objekt Scanner gibt, mit dem man einfach von der Konsole einlesen kann). Es werden auch Dinge gefragt, die man schlichtweg auswendig wissen muss. Wie heißt noch einmal die Methode, um die standardmäßige Länderformatierung zu aktivieren? Locale.getDefault(), Locale.setDefault() oder nur Locale.get() oder Locale.set()? Die Lösung lautet Locale.setDefault(Locale newLocale). © des Titels »SCJP - Sun Java Certified Programmer« (ISBN 978-3-8266-5963-8) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.mitp.de/5963 15 Vorwort Mit welcher Kombination von Lernunterlagen Sie mit großer Wahrscheinlichkeit die Prüfung bestehen können, verrate ich Ihnen in Kapitel 8. Obwohl das vorliegende Buch auf dem Vorgängerbuch für die Java-Version 5 aufbaut, ist es praktisch ein neues Buch, da ich sämtliche Kapitel überarbeitet habe und nicht nur diejenigen, die aufgrund der Neuerungen von Java 6 einer Überarbeitung bedurften. Am Ende jedes Kapitels finden Sie neue Beispiele, die zeigen, wie nicht programmiert werden sollte. Das ist ja das Schwierigste an den SCJPPrüfungen: Man muss nicht nur wissen, wie etwas programmiert wird, sondern man muss auch alle Varianten kennen, die Warnungen, Kompilier- und Laufzeitfehler verursachen. Die Erweiterungen in diesem Buch sind die Anpassungen an die Java-6-Prüfung. Sie betreffen die Prüfungsziele 3, 6 und 7. Je ein Simulationstest am Ende des Buchs, einmal in Deutsch, einmal in Englisch, gibt Ihnen eine Vorstellung von dem realen Test, egal ob Sie sich für die deutsche oder die englischsprachige Prüfung vorbereiten. Im Januar 2009 Terence V. Gronowski Danksagung Mein besonderer Dank gilt den Lesern des Vorgängerbuchs, die mir Anregungen und Korrekturen zukommen ließen und wesentlich zum Gelingen des aktuellen Buches beigetragen haben. Herr Daniel Bur hat sich freundlicherweise zur Verfügung gestellt, die Rohfassung auf Verständlichkeit durchzulesen. Auch bedanke ich mich herzlich bei Herrn Ernst-Heinrich Pröfener vom mitp-Verlag, auf dessen Initiative dieses Buch und dessen Vorgänger entstanden, sowie bei Frau Claudia Nölker für ihre gründliche und kompetente Fachredaktion. 16 © des Titels »SCJP - Sun Java Certified Programmer« (ISBN 978-3-8266-5963-8) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.mitp.de/5963 Einleitung Zielpublikum Das Buch richtet sich an Personen, die die Prüfung Sun Certified Java Programmer SCJP 310-065 oder die Upgrade-Prüfung SCJP 310-066 für Java® 6 ablegen wollen. Es kann dem Programmierer aber auch helfen, zu verschiedenen Programmierthemen die korrekten Werkzeuge zu finden. Da die aktuelle Prüfung den ganzen Stoff der Vorgängerprüfung enthält, kann dieses Buch auch zur Vorbereitung der Java-5-Prüfung verwendet werden. Das Buch eignet sich zur Vorbereitung auf die Prüfung im Selbststudium, sofern weitere Hilfsmittel wie eine Einführung in Java, ein Kompendium, Simulationstests und Musterfragen genutzt werden, die Sie zum einen auf der Website zu diesem Buch finden und zum anderen (zur Zeit leider meist nur in englischer Sprache) günstig erwerben können. Inhalt ® Der Titel »Vorbereitung auf die JAVA™ Zertifizierung, Sun zertifizierter Java-Programmierer, strukturierte und gezielte Vorbereitung auf die Prüfungen SCJP 310-065 und 310-066 für die Java-2-Plattform, Standard Edition 6.0«, soll darauf hinweisen, dass im vorliegenden Buch der umfangreiche Stoff gezielt und strukturiert vermittelt wird, denn bei der vorliegenden Stofffülle sollte man nicht zu viel, aber auch nicht zu wenig lernen. Die Stoffvielfalt dieser Prüfung ist so groß, dass sich das Buch nur genau auf die Themen der Prüfung konzentriert, und nicht über den »Tellerrand« hinausschaut. Es wurde großer Wert auf die Strukturierung gelegt, die mit der Vorgabe der Prüfungsziele durch Sun vorgegeben ist. Die Kapitelstruktur wurde daher gemäß der sieben Prüfungsziele und der 37 Teilprüfungszielen der Prüfung 310-065 gegliedert. Zu jedem der 37 Teilprüfungsziele wird in einfachen Beispielen erläutert, welcher Stoff zu verstehen ist. Praktisch alle Beispielprogramme werden vollständig abgedruckt, sodass sie auch von einem Anfänger ohne langes Anpassen von Klassenpfad und Package-Deklaration getestet werden können. Am Ende jedes Kapitels folgen Testfragen, ebenfalls aufgegliedert nach Teilprüfungsziel. Eine detaillierte Beschreibung der realen Prüfung in Kapitel 8 und je ein Simulations- © des Titels »SCJP - Sun Java Certified Programmer« (ISBN 978-3-8266-5963-8) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.mitp.de/5963 17 Einleitung test in deutscher und englischer Sprache im Anhang ergänzen das Buch und bilden eine solide Grundlage, um die Prüfung erfolgreich zu meistern. Dieses Buch ist kein Einführungsbuch in die Java-Programmierung. Es setzt ein minimales Basiswissen voraus, dass Sie sich mit einem der vielen ausgezeichneten Einführungsbücher parallel zum Studium dieses Buchs aneignen können. Beachten Sie, falls Sie sich ein Einführungsbuch beschaffen, dass es sich mit Java 6 befasst. Zum Rüstzeug für die SCJP-Prüfung gehört auch ein Java-Nachschlagewerk. Sie können ein solches im Fachhandel günstig erweben oder nutzen Sie das große Angebot der Online-Openbooks in deutscher und englischer Sprache zu diesem Thema. Übungen zu Java 6 finden Sie z.B. im Buch des gleichen Verlags von Elisabeth Jung, Java 6 Das Übungsbuch. Weiter rate ich Ihnen sehr, die Prüfung mithilfe eines Prüfungssimulationsprogramms zu trainieren, damit Sie sich an das Tempo und an die schwierigen Drag & Drop-Fragen gewöhnen können (beachten Sie die Website zu diesem Buch auf http://www.scjp.ch). Prüfungsziele Sun CX-310-065 Die Prüfungsziele der »Sun Certified Programmer for the Java 2 Platform, Standard Edition 6.0 (CX-310-065)« ersehen Sie auf der Website von Sun und aus dem Inhaltsverzeichnis dieses Buchs, da die Kapitelstruktur mit den Prüfungszielen übereinstimmt. Aus diesem Grunde findet sich das Kapitel »Grundlagen« erst am Ende des Buches, da die Grundlagen erst bei Prüfungsziel 7 behandelt werden. Die einzelnen Kapitel sind voneinander unabhängige Einheiten, die in beliebiger Reihenfolge durchgearbeitet werden können. Die Prüfungsziele der Java-6-Prüfung weichen nur geringfügig von denen der Java-5-Prüfung ab. Neu sind nur die Klasse System.Console und die beiden Interfaces NavigableSet und NavigableMap. Deshalb können Sie sich mit diesem Buch auch auf die Java-5-Prüfung, die es in deutscher Sprache gibt, vorbereiten. Nebst den geänderten Prüfungszielen dauert die Java-6-Prüfung jetzt 210 Minuten gegenüber früher 175 Minuten. Zum Bestehen benötigt man nun 49 anstatt 43 richtige Antworten. Rechnet man nur mit der Minimalpunktzahl, hat man mit der neuen Prüfung 4,3 Minuten pro Prüfungsfrage gegenüber 4,1 Minuten bei der alten Prüfung. Das Hauptziel des vorliegenden Buches ist, Sie genau passend auf diese Prüfungsziele vorzubereiten – nicht mehr, aber auch nicht weniger! 18 © des Titels »SCJP - Sun Java Certified Programmer« (ISBN 978-3-8266-5963-8) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.mitp.de/5963 Einleitung Website zum Buch Aufgrund der kurzlebigen Natur von Zertifizierungen haben wir uns entschlossen, zu diesem Buch eine Website einzurichten, anstatt eine CD beizulegen. Eine Website wird der dynamischen Natur von kurzlebigen Zertifizierungsprüfungen viel eher gerecht als eine statische CD. Die Website umfasst den Code der Übungsbeispiele, eine Errata-Seite und ein Bonus-Programm, welches weitere deutschsprachige Übungsfragen umfasst, sowie einen Simulationstest. Bei ausreichendem Interesse werde ich Workshops zum Buch durchführen. Sie finden die Webseite unter http://www.scjp.ch. Per E-Mail erreichen Sie mich unter [email protected] oder [email protected]. Im Buch verwendete Formatierungen Fließtext Hervorhebungen in erster Nennung: Kursiv Einzelne reservierte Wörter, einzelne Methoden: Kursiv Code-Auszüge innerhalb des Texts: Fixfont Systembefehle, Systemeinstellungen: Fixfont Zitate: »kursiv, in Anführungszeichen« Listings Konstanten: GROSSSCHREIBUNG Objekte: Erster Buchstabe groß geschrieben Methoden, Variablen: Erste Silbe klein geschrieben, nachfolgende mit einem Grossbuchstaben Reservierte Wörter: fett Einrückung nach einer geschweiften Klammer: 2 Leerzeichen © des Titels »SCJP - Sun Java Certified Programmer« (ISBN 978-3-8266-5963-8) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.mitp.de/5963 19 © des Titels »SCJP - Sun Java Certified Programmer« (ISBN 978-3-8266-5963-8) 2009 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.mitp.de/5963