24 czerwca 2009

Jest kolejny rozdział książki o SCJP

Jest kolejny rozdział mojej książki o SCJP - rozdział pierwszy - pt. "Klasy, interfejsy, typy wyliczeniowe". Pokrywa on zakresem cele egzaminacyjne SCJP nr. 1.1, 1.2 i 7.1, tj.:

1.1 Napisz kod, w którym deklarujesz klasy (wliczając klasy abstrakcyjne i wszelkie formy klas zagnieżdżonych), interfejsy i typy wyliczeniowe oraz zademonstruj poprawne użycie instrukcji package i import (w tym import statyczny).

1.2 Napisz kod, w którym deklarujesz interfejs oraz kod, w którym implementujesz lub dziedziczysz z jednego lub wielu interfejsów. Zaimplementuj klasę abstrakcyjną oraz klasę, która dziedziczy z klasy abstrakcyjnej.

7.1 Mając podany fragment kodu oraz scenariusz napisz program w którym używasz odpowiednich modyfikatorów dostępu, prawidłowo deklarujesz pakiet oraz używasz instrukcji importu, w którym używasz podanego fragmentu kodu poprzez dziedziczenie lub kompozycję.

11 czerwca 2009

Jest już rozdział o kolekcjach i typach generycznych

Właśnie opublikowałem kolejny rozdział mojej książki "Przygotowanie do certyfikacji SCJP 6". Rozdział popkrywa temat kolekcji, map i typów generycznych. Radość moja z jego ukończenia tym większa, że jest on dość obszerny i w większości składa się z tekstów nie publikowanych na tym blogu w formie artykułów. Swoją drogą - często słyszy się, że ktoś nie do końca rozumie temat typów generycznych. Nie wiem czy to dlatego że jest to mechanizm względnie nowy (w porównaniu do samej Javy) czy że rzeczywiście względnie trudny. W każdym razie - niezależnie od certyfikacji SCJP - polecam wszystkim podjęcie próby zrozumienia tematu z pomocą mojej książki. No i oczywiście czekam na informację zwrotną... czy sie udało.

5 czerwca 2009

Jest rozdział "Zagadnienia programowania obiektowego"

Właśnie opublikowałem kolejny rozdział mojej książki do SCJP - "Zagadnienia programowania obiektowego". Rozdział pokrywa cele egzaminacyjne SCJP w zakresie punktów 5.1, 5.2 i 5.5, tj.:

5.1 Napisz kod zgodnie z pryncypiami ścisłej hermetyzacji, prostych zależności i dużej spójności oraz opisz zalety takiego kodu.

5.2 Mając podany scenariusz napisz kod w którym demonstrujesz zrozumienie polimorfizmu. Oceń, kiedy konieczne jest zastosowanie rzutowania oraz opisz błędy jakie mogą powstać w związku z rzutowaniem. Wskaż, które z tych błędów są błędami czasu wykonania a które błędami kompilacji.

5.5 Napisz kod, w którym występują relacje IS-A oraz HAS-A. Wyjaśnij, na czym polegają te relacje.

4 czerwca 2009

Jak element HTMLa LINK fałszuje statystyki stron

Właśnie zakończyłem proces dodawania kodu zliczającego odsłony mojego nowego portalu GetSCJP.pl i przy okazji tegoż wykryłem ciekawą rzecz która ma niebagatelne znaczenie dla uzyskania dobrych, tj. prawdziwych danych. Otóż jeśli na mojej stronie HTML był element LINK z atrybutem REL o wartości 'next' to Firefox (wersja 3.0.10) oprócz pobierania tej strony o której pobranie został poproszony pobierał także stronę wskazywaną przez tenże element LINK. Co prawda element LINK z atrybutem REL o wartości 'next' służy właśnie dlatego by wskazać przeglądarce jaka strona jest "następna w kolejce do przeglądania" (zgodnie z jakimiś tam przewidywaniami) więc nie ma nic złego w tym że Firefox za wczasu pobiera taką stronę starając się wyprzedzić żądania użytkownika, jednak z punktu widzenia osoby implementującej statystyki oznacza to tylko i wyłącznie fałszowanie danych. Jeśli więc - kimkolwiek jesteś - chcesz uzystać dla swoich stron prawdziwe statystyki upewnij się lepiej, że takich elementów LINK na twoich stronach nie ma. Dodam jeszcze że IE nie wykazywał takich zapędów "optymalizacyjnych".