OCPJP – 3 pytania i odpowiedzi ze szkolenia (luty 2016)

Pytania w tym artykule pojawiły się podczas szkolenia Java Standard Edition 7 część II – przygotowanie do egzaminu „Oracle Certified Professional, Java SE 7 Programmer” [OCPJP 7]  realizowanego w dniach 10-12.02.2016r.


O ile więcej wiedzy i nauki wymaga egzamin Java Programmer II (Professional) niż I (Associate)?

„Wielokrotnie więcej! Egzamin nr 1 dotyczy głównie samego języka Java: pętle, referencje, dziedziczenie, wyjątki. Te rzeczy lepiej „”rozumieć”” niż się ich uczyć 🙂 Wymagana jest wiedza na temat drobnego wycinka Java API: String, StringBuilder, ArrayList. Przy czym nie można zakładać, że egzamin jest prosty: jest mało czasu, a pytania są podchwytliwe.
Natomiast egzamin nr 2 dotyczy przede wszystkim zawartości Java API we wskazanym zakresie. Obejmuje to całe kolekcje, wejście/wyjście włącznie z bardzo szczegółową znajomością pakietu java.nio.file, przetwarzanie tekstu (w tym regex, lokalizacja, formatowanie), obsługę baz danych i wielowątkowość, w tym znów bardzo szczegółową znajomość java.util.concurrent. Nawet doświadczony programista Java zwykle nie zna wszystkich tych rzeczy tak szczegółowo i trzeba się tego nauczyć…”

Dlaczego u Pana nie trzeba było pisać final, a u mnie trzeba?

Bo ja (prowadzący) mam skonfigurowaną Javę w wersji 8, a Pan (uczestnik) 7. Ogólnie w Javie wewnątrz klas anonimowych można odwoływać się do zmiennych lokalnych (i parametrów metod) z kontekstu zewnętrznego. Ale tylko pod warunkiem, że zmienne te są „final”, a więc po zainicjowaniu nie mogą już zmienić swojej wartości. Do Javy 7 przy takiej zmiennej trzeba jawnie napisać, że jest „final”. Od Javy 8 nie trzeba pisać słowa „final”, ale de facto zmienna i tak musi być final – nie może zmieniać raz przyjętej wartości! W Javie 8 dotyczy to także wyrażeń lambda.

Jak poprawnie zdefiniować metodę equals?

Są pewne wymagania „matematyczne”, opisane w materiałach ze szkolenia. Ale w praktyce najprościej poprosić o to narzędzie deweloperskie. Eclipse i Netbeans potrafią generować wiele standardowych fragmentów kodu, w tym metody equals i hashCode (zazwyczaj definiuje się je jednocześnie).

Zobacz również

W listopadzie podpisaliśmy umowę na świadczenie usługi przygotowania interaktywnej mapy zasobów województwa...
Nasza firma podpisała kolejną umowę na realizację projektu rozwijającego i wspierającego system...
Rozpoczynamy realizację projektu wsparcia serwisowego i programistycznego Systemu Obsługi Programów (SOP) dla...