Drogi Czytelniku! Poniżej zamieszczona jest errata do książki:
Jest to lista błędów znalezionych po opublikowaniu książki, zgłoszonych i zaakceptowanych przez naszą redakcję. Pragniemy, aby nasze publikacje były wiarygodne i spełniały Twoje oczekiwania. Zapoznaj się z poniższą listą. Jeśli masz dodatkowe zastrzeżenia, możesz je zgłosić pod adresem: helion.pl/user/erraty
Strona | Linia | Jest | Powinno | Zgłaszający |
---|---|---|---|---|
65 | Tabela 3.3 | \u 000d | \u000d | Uniqsilen |
65 | Tabela 3.3 | \u 0022 | \u0022 | Uniqsilen |
75 | Rysunek 3.1 | Brak strzałki od typu float do double. | Strzałka (linia ciągła) od typu float do double. | Uniqsilen |
76 | Tabela 3.4 | ! ~++ -- +(jednoargumentowy) ()(rzutowanie) new | ! ~ ++ -- +(jednoargumentowy) -(jednoargumentowy) ()(rzutowanie) new | Uniqsilen |
77 | 1 | operator += ma wiązanie lewostronne | operator += ma wiązanie prawostronne | Uniqsilen |
78 | 20 | na łańcuch "brzydkiesłowousunięto" | na łańcuch "brzydkie słowousunięto" | Sławomir Góralczyk |
80 | Pierwszy pod ramką | "Cześć!".equals(greeting") | "Cześć!".equals(greeting) | Uniqsilen |
83 | 2 od dołu | Zwraca wartość true, jeśli łańcuch jest identyczny z innym łańcuchem | Zwraca wartość true, jeśli łańcuch jest identyczny z łańcuchem other | Uniqsilen |
88 | 17 od końca | Dodaje łańcuch c. | Dodaje łańcuch str. | Uniqsilen |
88 | sam dół | w obiekcie builder lub buffer | w obiekcie klasy StringBuilder lub StringBuffer | Sławomir Góralczyk |
89 | 3 i 4 w pierwszym akapicie | programowanie interfejsu wymaga | programowanie interfejsu graficznego wymaga | Sławomir Góralczyk |
91 | 12 | Sprawdza, czy dana sekcja znaków jest | Sprawdza, czy następna sekcja znaków jest | Uniqsilen |
91 | 3 | String text() | String next() | Dawid Góralczyk |
93 | Tabela 3.6 trzeci wiersz od końca | Formatuje podobnie jak poprzednia specyfikacja. | Formatuje ponownie argument z poprzedniej specyfikacji. | Uniqsilen |
95 | 8 pod Tabelą 3.7 (licząc od tabeli) | Data: luty 9, 2004 | Data: 9 luty 2004 | Uniqsilen |
113 | 3 od dołu | do instrukcji i++ | do instrukcji count++ | Sławomir Góralczyk |
119 | 6 licząc od podrozdziału 3.10.3 | należy użyć metody copyTo | należy użyć metody copyOf | Sławomir Góralczyk |
123 | 5 od dołu | static int binarySearch(typ[] a, int start, int end typ v) 6 | static int binarySearch(typ[] a, int start, int end, typ v) 6 | Uniqsilen |
128 | 2 | odwołuje się do j-tego wiersza tej tablicy. | odwołuje się do j-tego elementu tej tablicy. | Uniqsilen |
594 | 39 | Domyślny plik konfiguracyjny to jre/lib/jogging.properties. | Domyślny plik konfiguracyjny to jre/lib/logging.properties. | Aleksander Jagielski |
709 | plik | - |
Poniżej znajduje się lista błędów znalezionych przez czytelników, ale jeszcze nie potwierdzonych przez Redakcję:
Strona | Linia | Jest | Powinno | Zgłaszający |
---|---|---|---|---|
65 | 9 | znakowych, jak i w łańcuchach, np. ′u\2122′ albo "Witaj\n". | znakowych, jak i w łańcuchach, np. ′\u2122′ albo "Witaj\n". | Bartłomiej Drożdż |
76 | Tabela 3.4 | = += -= = /= %= &= /= ^= <<= >>= >>>= | = += -= = /= %= &= |= ^= <<= >>= >>>= | Grzegorz Szpetkowski |
83 | 5 od wyciągu API | Zwraca współrzędną kodową znaku, która zaczyna się lub kończy w określonej lokalizacji. | Zwraca współrzędną kodową znaku, która zaczyna się w określonej lokalizacji. | Grzegorz Szpetkowski |
84 | 16 | Zwraca długość łańcucha. | Zwraca długość łańcucha, wyrażoną w jednostkach kodowych. | Uniqsilen |
84 | 5-7 | Zwraca początek pierwszego podłańcucha podanego w argumencie str lub współrzędnej kodowej cp, szukanie zaczynając od indeksu 0, pozycji fromIndex czy też -1, jeśli napisu str nie ma w tym łańcuchu. | Zwraca początek pierwszego podłańcucha podanego w argumencie str lub współrzędnej kodowej cp. Jeśli napisu str nie ma w tym łańcuchu zwraca -1. Szukanie zaczyna od indeksu 0, pozycji fromIndex. | Uniqsilen |
90 | kod źródłowy | System.out.println("Witaj, użytkowniku" + name + ". W przyszłym roku będziesz mieć " + (age + 1) + "lat."); | System.out.println("Witaj, użytkowniku " + name + ". W przyszłym roku będziesz mieć " + (age + 1) + " lat."); | Grzegorz Szpetkowski |
90 | linia przed pierwszą zamykającą klamrą | System.out.println("Witaj użytkowniku" + name + ". W przyszłym roku będziesz mieć " + (age + 1) + "lat.");
} } |
System.out.println("Witaj użytkowniku" + name + ". W przyszłym roku będziesz mieć " + (age + 1) + " lat.");
in.close(); } } |
Paweł Burzawa |
92 | kod przy czwartym akapicie | System.out.printf("%, .2f", 10000.0 / 3.0); | System.out.printf("%,.2f", 10000.0 / 3.0); | Grzegorz Szpetkowski |
96 | 2 od dołu | istnieje możliwość wystąpienia wyjątku związanego z nieodnalezieniem pliku | istnieje możliwość wystąpienia wyjątku związanego z operacją wejścia-wyjścia. | Grzegorz Szpetkowski |
96 | 5 akapit od 3.7.3 | Jeśli plik nie istnieje, można użyć metod print, (...) | Jeśli plik nie istnieje, to zostanie utworzony. Można używać metod print, (...) | Grzegorz Szpetkowski |
97 | 1 | throws FileNotFoundException | throws IOException | Grzegorz Szpetkowski |
97 | 5 w drugiej ramce | obsługą wyjątku FileNotFoundException | obsługą wyjątku IOException | Grzegorz Szpetkowski |
98 | 2 i 4 w ramce C++ | go to (dwukrotnie) | goto (dwukrotnie) | Grzegorz Szpetkowski |
98 | 7 | Instrukcje sterujące Javy są niemal identyczne z instrukcjami sterującymi w C++.
Różnica polega na tym, że w Javie nie ma instrukcji go to, ale jest wersja instrukcji break z etykietą, której można użyć do przerwania działania zagnieżdżonej pętli (w takich sytuacjach, w których w C prawdopodobnie użylibyśmy instrukcji go to). Nareszcie dodano wersję pętli for, która nie ma odpowiednika w językach C i C++. Jest podobna do pętli foreach w C#. |
Instrukcje sterujące Javy są niemal identyczne z instrukcjami sterującymi w C++.
Różnica polega na tym, że w Javie nie ma instrukcji goto, ale jest wersja instrukcji break z etykietą, której można użyć do przerwania działania zagnieżdżonej pętli (w takich sytuacjach, w których w C prawdopodobnie użylibyśmy instrukcji goto). Nareszcie dodano wersję pętli for, która nie ma odpowiednika w językach C i C++. Jest podobna do pętli foreach w C#. |
Bartłomiej Drożdż |
109 | 1 w przedostatnim akapicie | wyrażeniami stałymi typu char, byte, short lub int (oraz odpowiednich klas opakowujących: Character, Byte, Short i Integer) - ich opis znajduje się w rozdziale 4.); | wyrażeniami stałymi typu char, byte, short lub int; | Grzegorz Szpetkowski |
111 | 1 od dołu w ramce | w rozdziale 13, drugiego tomu | w rozdziale 10, drugiego tomu | Grzegorz Szpetkowski |
116 | 6 | Zwraca sumę, różnicę, iloczyn, iloraz i resztę liczb BigDecimal i other. | Zwraca sumę, różnicę, iloczyn lub iloraz liczb BigDecimal i other. | Grzegorz Szpetkowski |
117 | 2 od dołu | interfejs Iterable w drugim rozdziale drugiego tomu | interfejs Iterable w rozdziale 13. | Grzegorz Szpetkowski |
117 | 3 w drugiej ramce | spowodowaniem wyjątku ArrayIndexOutOfBounds | spowodowaniem wyjątku ArrayIndexOutOfBoundsException | Grzegorz Szpetkowski |
122 | 27 - końcówka listingu z kodem | for (int r : result)
System.out.println(r); } |
for (int r : result)
System.out.println(r); } } |
Bartłomiej Drożdż |
122 | drugi akapit | Math.random zwraca losową liczbę zmiennoprzecinkową z zamkniętego przedziału 0-1. | Math.random zwraca losową liczbę zmiennoprzecinkową z przedziału [0, 1). | Grzegorz Szpetkowski |
123 | trzeci punkt w opisie API | static typ[] copyOf(typ[] a, int start, int end) 6 | static typ[] copyOfRange(typ[] a, int start, int end) 6 | Grzegorz Szpetkowski |
136 | Rysunek 4.2 | Między Order, a Item jest narysowana relacja dziedziczenia. | Między Order, a Item powinna być relacja agregacji (linia ciągła z pustym rombem od strony Order). | Uniqsilen |
142 | 10-11 od dołu | Metody te mają szczególne znaczenie przy konwersji pomiędzy klasami GregorianCalendar i Calendar. | Metody te mają szczególne znaczenie przy konwersji pomiędzy klasami GregorianCalendar i Date. | Uniqsilen |
142 | 14-15 od dołu | Na przykład klasa GregorianCalendar zawiera metody getTime i setTime, | Na przykład klasa Calendar zawiera metody getTime i setTime,
lub Na przykład klasa GregorianCalendar dziedziczy metody getTime i setTime, |
Uniqsilen |
143 | 8-9 od dołu licząc od ramki | Zmienna weekday jest ustawiona na wartość Calendar.NIEDZIELA, jeśli pierwszym dniem miesiąca jest niedziela, Calendar.PONIEDZIAŁEK, | Zmienna weekday jest ustawiona na wartość Calendar.SUNDAY, jeśli pierwszym dniem miesiąca jest niedziela, Calendar.MONDAY, | Uniqsilen |
144 | drugi akapit | Metoda getShortWeekdays zwraca łańcuch złożony ze skrótów nazw dni tygodnia | Metoda getShortWeekdays zwraca tablicę łańcuchów, zawierających skróty nazw dni tygodnia | Grzegorz Szpetkowski |
146 | 22 | Tworzy kalendarz gregoriański z podanej daty i godziny. | Tworzy obiekt kalendarza gregoriańskiego reprezentujący podaną datę i godzinę. | Uniqsilen |
146 | 9 od dołu [przed metodą: int get(int field)] | Brak opisu pakietu | java.util.Calendar 1.1 | Uniqsilen |
147 | 4 od dołu | Ustawia kalendarz na podany moment w czasie. | Ustawia wartość obiektu kalendarza na podany moment w czasie. | Uniqsilen |
150 | 18 od dołu [pod linią] | W programie tym tworzymy tablicę o nazwie Employee | W programie tym tworzymy tablicę o nazwie staff
ub W programie tym tworzymy tablicę obiektów klasy Employee |
Uniqsilen |
156 | ramka, ostatnia instrukcja kodu | return hireDay.clone(); | return (Date) hireDay.clone(); | Grzegorz Szpetkowski |
161 | pierwsza ramka, drugi wiersz | zamiast wywołania Employee.getNextId() trzeba było użyć | zamiast wywołania Employee.getNextId() można było użyć | Grzegorz Szpetkowski |
162 | 6 | obiekty klasy DecimalPoint | obiekty klasy DecimalFormat | Grzegorz Szpetkowski |
171 | 11 | Jeśli niemożliwe jest dopasowanie parametrów lub istnieje więcej niż jedno dopasowanie, występuje błąd kompilacji (...). | Jeśli niemożliwe jest dopasowanie parametrów, występuje błąd kompilacji (...). | Grzegorz Szpetkowski |
172 | 8 od dołu | Employee(String name, double salary, int y, int m, int d) | Employee(String n, double s, int year, int month, int day) | Uniqsilen |
172 | 9 w rozdziale 4.6.3 | Konstruktor domyślny jest stosowany, w przypadku gdy programista nie utworzy żadnego konstruktora. Konstruktor ten ustawia wszystkie pola na wartości domyślne. | Konstruktor domyślny jest automatycznie generowany, w przypadku gdy programista nie utworzy żadnego konstruktora. Konstruktor ten ustawia wszystkie pola na wartości domyślne. | Bartłomiej Drożdż |
177 | 15 od tyłu | zastosowanie bloku inicjującego obiektów, | zastosowanie bloku inicjującego obiektu, | Bartłomiej Drożdż |
177 | W ramce 2 od dołu. | Można uniknąć tego połajania, | Można uniknąć jego pojawiania się, | Uniqsilen |
188 | ostatni | com.horstmann.Employee | com.horstmann.corejava.Employee | Uniqsilen |
189 | od 2 do 4 w podrozdziale 4.8.1 | java -classpath /home/user/classdir:.:/home/user/archives/archive.jar MyProg.java
lub java -classpath c:\classdir;.;c:\archives\archive.jar MyProg.java |
java -classpath /home/user/classdir:.:/home/user/archives/archive.jar MyProg
lub java -classpath c:\classdir;.;c:\archives\archive.jar MyProg |
Uniqsilen |
204 | 13 | Natomiast obiekt Staff[0] | Natomiast obiekt staff[0] | Uniqsilen |
274 | koniec ramki | Wywołanie Double.compare(x, y)
zwraca -1, gdy x < y, lub 1, gdy x > 0. |
Wywołanie Double.compare(x, y)
zwraca wartość < 0, gdy x < y, lub wartość > 0, gdy x > y lub 0, gdy x = y. |
Agnieszka Rapa |
291 | 1 | TalkingClass | TalkingClock | Krzysztof Kin |
331 | 35 | NotHelloWorldPanel | NotHelloWorldComponent | Krzysztof Olejarz |
331 | Pod "Panel wyświetlający komunikat" | class NotHelloWorldPanel extends JComponent | class NotHelloWorldComponent extends JComponent | Adrian Sikora |