24

Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe
Page 2: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Tytuł oryginału: Java 8 Pocket Guide

Tłumaczenie: Robert Górczyński

ISBN: 978-83-246-9628-4

© 2014 Helion S.A.

Authorized Polish translation of the English edition Java 8 Pocket Guide ISBN 9781491900864 © 2014 Gliesian, LLC.

This translation is published and sold by permission of O’Reilly Media, Inc., which ownsor controls all rights to publish and sell the same.

All rights reserved. No part of this book may be reproduced or transmitted in any formor by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności aniza ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowychlub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartychw książce.

Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/jav8lkMożesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Printed in Poland.

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Page 3: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

5

Spis treści

Wprowadzenie ..........................................................................................11

Część I Język .................................................................. 15

Rozdział 1. Konwencje nazw ................................................................... 17Nazwy klas 17Nazwy interfejsów 17Nazwy metod 18Nazwy egzemplarzy i zmiennych statycznych 18Nazwy parametrów i zmiennych lokalnych 18Nazwy parametrów typów ogólnych 18Nazwy stałych 19Nazwy typów wyliczeniowych 19Nazwy pakietów 19Nazwy adnotacji 20Nazwy akronimów 20

Rozdział 2. Elementy leksykalne ............................................................. 21Unicode i ASCII 21Komentarze 23Słowa kluczowe 24Identyfikatory 24

Kup książkę Poleć książkę

Page 4: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

6 Spis treści

Separatory 25Operatory 26Literały 26Sekwencje sterujące 30Symbole walut w Unicode 31

Rozdział 3. Typy proste ............................................................................33Typy podstawowe 33Literały dla typów podstawowych 33Encje zmiennoprzecinkowe 35Promocja liczbowa dla typów podstawowych 37Klasy opakowujące 39Automatyczne pakowanie i rozpakowywanie 39

Rozdział 4. Typy odnośnikowe ................................................................43Porównanie typów odnośnikowych i podstawowych 44Wartości domyślne 44Konwersja typów odnośnikowych 46Konwersja między typami podstawowymi i odnośnikowymi 47Przekazanie typu odnośnikowego metodzie 47Porównywanie typów odnośnikowych 48Kopiowanie typów odnośnikowych 51Alokacja pamięci i usuwanie nieużytków w przypadkutypów odnośnikowych 52

Rozdział 5. Programowanie zorientowane obiektowo .........................53Klasy i obiekty 53Zmiennej długości lista argumentów 59Klasy i metody abstrakcyjne 60Statyczne dane składowe, metody, stałe i inicjalizatory 61Interfejsy 63Wyliczenia 63Typy adnotacji 64Interfejsy funkcjonalne 66

Kup książkę Poleć książkę

Page 5: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Spis treści 7

Rozdział 6. Polecenia i bloki .................................................................... 67Polecenie w postaci wyrażenia 67Polecenie puste 68Blok 68Polecenia warunkowe 68Polecenia iteracji 70Transfer kontroli 72Polecenie synchronized 73Polecenie assert 73Polecenia obsługi wyjątków 74

Rozdział 7. Obsługa wyjątków ................................................................ 75Hierarchia wyjątku 75Sprawdzane i niesprawdzane wyjątki oraz błędy 76Najczęstsze sprawdzane i niesprawdzane wyjątki oraz błędy 77Słowa kluczowe związane z obsługą wyjątków 79Proces obsługi wyjątków 84Zdefiniowanie własnej klasy wyjątku 84Wyświetlanie informacji o wyjątku 85

Rozdział 8. Modyfikatory w Javie ...........................................................87Modyfikatory dostępu 88Inne modyfikatory (niedotyczące dostępu) 88

Część II Platforma ........................................................... 91

Rozdział 9. Java SE ...................................................................................93Najczęściej używane biblioteki API Javy SE 93

Rozdział 10. Podstawy programowania ................................................ 105JRE 105JDK 105Struktura programu w Javie 106Narzędzia wiersza poleceń 108Classpath 114

Kup książkę Poleć książkę

Page 6: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

8 Spis treści

Rozdział 11. Zarządzanie pamięcią .........................................................115Rodzaje mechanizmów usuwania nieużytków 115Narzędzia przeznaczone do zarządzania pamięcią 117Opcje w wierszu poleceń 118Zmiana wielkości stosu wirtualnej maszyny Javy 121Przestrzeń Metaspace 121Współpraca z mechanizmem GC 121

Rozdział 12. Podstawowe wejście i wyjście .......................................... 123Standardowe strumienie in, out i err 123Hierarchia klas dla podstawowego wejścia i wyjścia 124Odczyt i zapis pliku 124Odczyt i zapis gniazda 127Serializacja 128Tworzenie archiwum ZIP i rozpakowywanie plików 129

Rozdział 13. Nowe API wejścia-wyjścia (NIO.2) ....................................131Interfejs Path 131Klasa Files 132Funkcje dodatkowe 133

Rozdział 14. Współbieżność .................................................................. 135Tworzenie wątków 135Stany wątku 136Priorytety wątku 136Najczęściej używane metody dotyczące wątków 137Synchronizacja 138Narzędzia współbieżności 139

Rozdział 15. Framework Collections ...................................................... 143Interfejs Collection 143Implementacje 144Metody frameworka Collection 144Algorytmy klasy Collections 145Efektywność algorytmu 145Interfejs funkcjonalny Comparator 146

Kup książkę Poleć książkę

Page 7: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Spis treści 9

Rozdział 16. Framework Generics .......................................................... 149Klasy i interfejsy frameworka Generics 149Konstruktory wykorzystujące framework Generics 150Zasada zastępowania 151Parametry typu, znaki wieloznaczne i granice 151Zasada get i put 152Specjalizacja typów generycznych 153Metody frameworka Generics w niezmodyfikowanych typach 154

Rozdział 17. API skryptowe Javy ............................................................ 155Języki skryptowe 155Implementacje silnika skryptów 155Konfiguracja języków skryptowych i silników 157

Rozdział 18. API daty i godziny ...............................................................161Wsteczna zgodność 162Kalendarze regionalne 162Kalendarz ISO 162

Rozdział 19. Wyrażenia lambda ............................................................ 169Podstawy wyrażeń lambda 169Interfejsy funkcjonalne specjalnego przeznaczenia 171Interfejsy funkcjonalne ogólnego przeznaczenia 172Zasoby dotyczące wyrażeń lambda 174

Część III Dodatki ............................................................ 175

A API Fluent ...........................................................................................177

B Narzędzia firm trzecich .................................................................... 179

C Podstawy UML .................................................................................. 189

Skorowidz ............................................................................................... 199

Kup książkę Poleć książkę

Page 8: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

10 Spis treści

Kup książkę Poleć książkę

Page 9: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

135

ROZDZIAŁ 14.

Współbieżność

Wątki w Javie pozwalają na znacznie efektywniejsze użycie wielu procesorówlub wielu rdzeni w pojedynczym procesorze. W przypadku pojedynczegoprocesora wątki zapewniają możliwość równoległego wykonywania operacji,na przykład wejścia-wyjścia i przetwarzania.

Programowanie wielowątkowe w Javie jest obsługiwane dzięki funkcjomoferowanym przez klasę Thread i interfejs Runnable.

Tworzenie wątkówWątki mogą być tworzone na dwa sposoby: przez rozszerzenie klasy java.lang.Thread lub przez implementację interfejsu java.lang.Runnable.

Rozszerzenie klasy ThreadRozszerzenie klasy Thread i nadpisanie metody run() powoduje utworzenieklasy obsługującej wątki. Uruchomienie nowego wątku jest bardzo łatwymzadaniem:

class Comet extends Thread { public void run() { System.out.println("Orbitowanie"); orbit(); }}

Comet halley = new Comet();halley.run();

Kup książkę Poleć książkę

Page 10: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

136 Rozdział 14. Współbieżność

Pamiętaj, że tylko jedna superklasa może być rozszerzona. Dlatego też klasarozszerzająca Thread nie może rozszerzać już żadnych innych superklas.

Implementacja interfejsu RunnableImplementacja interfejsu funkcjonalnego Runnable i zdefiniowanie jego metodyrun() również pozwala na utworzenie klasy obsługującej wątki.

class Asteroid implements Runnable { public void run() { System.out.println("Orbitowanie"); orbit(); }}

Asteroid majaAsteroid = new Asteroid();Thread majaThread = new Thread(majaAsteroid);majaThread.run();

Pojedynczy możliwy do uruchomienia egzemplarz może być przekazanywielu obiektom wątków. Każdy wątek wykonuje to samo zadanie, jak poka-zano w poniższym fragmencie kodu tuż po użyciu wyrażenia lambda:

Runnable asteroid = () -> { System.out.println("Orbitowanie"); orbit();};

Thread asteroidThread1 = new Thread(asteroid);Thread asteroidThread2 = new Thread(asteroid);asteroidThread1.run();asteroidThread2.run();

Stany wątkuWyliczenie Thread.state zawiera sześć stanów wątków, które zostały wymie-nione w tabeli 14.1.

Priorytety wątkuPrawidłowy zakres wartości priorytetu wątku to zwykle od 1 do 10, a warto-ścią domyślną jest 5. Priorytety wątku to jeden z aspektów Javy charakteryzu-jący się najmniejszą przenośnością, ponieważ zakres i wartość domyślna mogąsię różnić w poszczególnych wirtualnych maszynach Javy. Wartości prioryte-tów można pobrać za pomocą MIN_PRIORITY, NORM_PRIORITY i MAX_PRIORITY.

Kup książkę Poleć książkę

Page 11: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Najczęściej używane metody dotyczące wątków 137

Tabela 14.1. Stany wątku

Stan wątku Opis

NEW Wątek, który został utworzony, ale jeszcze nie jest uruchomiony.

RUNNABLE Wątek, który jest gotowy do uruchomienia.

BLOCKED „Żywy” wątek, który jest zablokowany i oczekuje na blokadę monitora.

WAITING „Żywy” wątek, który wywołuje własną metodę wait() lub join() w trakcieoczekiwania na inny wątek.

TIMED_WAITING „Żywy” wątek, który oczekuje na inny wątek przez określony czas. Wątek uśpiony.

TERMINATED Wątek, który zakończył działanie.

System.out.print(Thread.MAX_PRIORITY);

Wątki o niższym priorytecie oferują mniejszą wydajność niż wątki o wyż-szym priorytecie.

Najczęściej używane metodydotyczące wątkówW tabeli 14.2 wymieniono najczęściej używane metody dotyczące wątkówi pochodzące z klasy Thread.

Tabela 14.2. Najczęściej używane metody klasy Thread dotyczące wątków

Metoda Opis

getPriority() Wartością zwrotną metody jest priorytet wątku.

getState() Wartością zwrotną metody jest stan wątku.

interrupt() Przerwanie pracy wątku.

isAlive() Wartością zwrotną metody jest stan „życia” wątku.

isInterrupted() Metoda sprawdza, czy nastąpiło przerwanie pracy wątku.

join() Wątek wywołujący tę metodę musi poczekać na zakończenie działania przezwątek, który jest reprezentowany przez dany obiekt.

setPriority(int) Ustawienie priorytetu wątku.

start() Umieszczenie wątku w stanie gotowości do uruchomienia.

W tabeli 14.3 wymieniono najczęściej używane metody dotyczące wątkówi pochodzące z klasy Object.

Kup książkę Poleć książkę

Page 12: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

138 Rozdział 14. Współbieżność

Tabela 14.3. Najczęściej używane metody klasy Object dotyczące wątków

Metoda Opis

notify() Metoda nakazuje obudzenie wątku i jego uruchomienie.

notifyAll() Metoda nakazuje obudzenie wszystkich wątków oczekujących na inne wątkilub zasoby; następnie algorytm szeregowania wybierze jeden wątek i uruchomi go.

wait() Wstrzymanie wątku w stanie oczekiwania aż do chwili, gdy inny wątek wywołametodę notify() lub notifyAll().

Wywołanie metody wait() lub notify() spowoduje zgłoszeniewyjątku InterruptedException, jeśli wywołanie metody nastąpiwzględem wątku, który ma ustawioną wartość true dla opcjiwskazującej na przerwanie jego pracy.

W tabeli 14.4 wymieniono najczęściej używane metody statyczne klasy Threaddotyczące wątków, na przykład Thread.sleep(1000).

Tabela 14.4. Metody statyczne dotyczące wątków

Metoda Opis

activeCount() Wartością zwrotną metody jest liczba wątków znajdujących się w bieżącejgrupie wątków.

currentThread() Metoda zwraca odniesienie do aktualnie działającego wątku.

interrupted() Metoda sprawdza, czy nastąpiło przerwanie aktualnie działającego wątku.

sleep(long) Zablokowanie na podaną w parametrze liczbę milisekund aktualniedziałającego wątku.

yield() Wstrzymanie aktualnego wątku, aby pozwolić innym wątkom na działanie.

SynchronizacjaSłowo kluczowe synchronize jest przeznaczone do nakładania blokad na blokii metody. Blokada powinna zostać nałożona na blok kodu lub metodę, którapróbuje uzyskać dostęp do zasobu współdzielonego o znaczeniu krytycznym.Tego rodzaju blokada monitora jest definiowana w nawiasie klamrowym.Poniżej przedstawiono kilka przykładów synchronizowanych bloków i metod.

Egzemplarz obiektu t wraz z synchronizowaną blokadą:synchronized (t) { // Polecenia bloku.}

Egzemplarz obiektu this wraz z synchronizowaną blokadą:

Kup książkę Poleć książkę

Page 13: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Narzędzia współbieżności 139

synchronized (this) { // Polecenia bloku.}

Metoda raise() wraz z synchronizowaną blokadą:// Pierwszy segment kodu.synchronized void raise() { // Polecenia metody.}

// Drugi segment kodu.void raise() { synchronized (this) { // Polecenia metody. }}

Metoda statyczna calibrate() wraz z synchronizowaną blokadą:class Telescope { synchronized static void calibrate() { // Polecenia metody. }}

Inna nazwa blokady to monitor lub mutex (ang. mutually exclu-sive lock).

Narzędzia współbieżności to kolejny sposób na stosowanie współbieżnościi zarządzanie nią.

Narzędzia współbieżnościW Javie SE 5.0 wprowadzono klasę narzędziową przeznaczoną do progra-mowania współbieżnego. Wspomniane narzędzia znajdują się w pakieciejava.util.concurrent i obejmują wykonawców, współbieżne kolekcje, syn-chronizatory i narzędzia przeznaczone do odmierzania czasu.

WykonawcyKlasa ThreadPoolExecutor oraz jej podklasa ScheduledThreadPoolExecutor imple-mentują interfejs Executor zapewniający konfigurowaną i elastyczną pulęwątków. Wspomniana pula wątków pozwala komponentom serwera na wy-korzystanie zalet wynikających z możliwości wielokrotnego użycia wątków.

Kup książkę Poleć książkę

Page 14: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

140 Rozdział 14. Współbieżność

Klasa Executors dostarcza metody fabryczne (tworzące obiekty) oraz narzę-dziowe. Spośród nich wymienione poniżej są przeznaczone do tworzeniapul wątków:

newCachedThreadPool()Utworzenie nieograniczonej puli wątków, która automatycznie wielo-krotnie używa wątków.

newFixedThreadPool(int nThreads)Utworzenie puli wątków o stałej wielkości, która automatycznie wie-lokrotnie używa wątków ze współdzielonej, nieograniczonej kolejki.

newScheduledThreadPool(int corePoolSize)Utworzenie puli wątków, dla której zdefiniowano polecenia wykony-wane okresowo lub po upływie określonego czasu.

newSingleThreadExecutor()Utworzenie wykonawcy działającego w pojedynczym wątku i operu-jącego na nieograniczonej kolejce.

newSingleThreadScheduledExecutor()Utworzenie wykonawcy działającego w pojedynczym wątku i posiada-jącego zdefiniowane polecenia wykonywane okresowo lub po upływieokreślonego czasu.

Poniżej przedstawiono fragment kodu demonstrujący użycie metody newFixedThreadPool():

import java.util.concurrent.Executors;import java.util.concurrent.ExecutorService;

public class ThreadPoolExample { public static void main() { // Utworzenie zadań // (klasa RTask implementuje interfejs Runnable). RTask t1 = new RTask("thread1"); RTask t2 = new RTask("thread2");

// Utworzenie menedżera wątków. ExecutorService threadExecutor = Executors.newFixedThreadPool(2);

// Przygotowanie wątków do uruchomienia. threadExecutor.execute(t1); threadExecutor.execute(t2);

// Zamknięcie wątków. threadExecutor.shutdown(); }}

Kup książkę Poleć książkę

Page 15: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Narzędzia współbieżności 141

Współbieżne kolekcjeNawet jeśli typ kolekcji może być synchronizowany, najlepszym rozwiąza-niem jest użycie klas współbieżności zapewniających bezpieczeństwo wąt-ków i oferujących taką samą funkcjonalność, jak zwykłe klasy. Wspomnianeklasy kolekcji i ich odpowiedniki współbieżności wymieniono w tabeli 14.5.

Tabela 14.5. Klasy kolekcji i ich odpowiedniki zapewniające bezpieczeństwo wątków

Klasa kolekcji Odpowiednik zapewniający bezpieczeństwo wątków

HashMap ConcurrentHashMap

TreeMap ConcurrentSkipListMap

TreeSet ConcurrentSkipListSet

podtypy Map ConcurrentMap

podtypy List CopyOnWriteArrayList

podtypy Set CopyOnWriteArraySet

PriorityQueue PriorityBlockingQueue

Deque BlockingDeque

Queue BlockingQueue

SynchronizatorySynchronizatory to specjalnego przeznaczenia narzędzia synchronizacji.Dostępne synchronizatory zostały wymienione w tabeli 14.6.

Tabela 14.6. Synchronizatory

Synchronizator Opis

Semaphore Obsługuje zestaw zezwoleń.

CountDownLatch Implementuje oczekiwanie aż do zakończenia wykonywania zestawu operacji.

CyclicBarrer Implementuje oczekiwanie aż do usunięcia najczęściej występujących barier.

Exchanger Implementuje punkt synchronizacji, w którym wątki mogą wymieniać elementy.

Narzędzia odmierzania czasuWyliczenie TimeUnit jest najczęściej stosowane do informowania metod opar-tych na odmierzaniu czasu, jak powinien być obliczony dany parametr zwią-zany z czasem. Przykład przedstawiono w poniższym fragmencie kodu.Dostępne stałe wyliczenia TimeUnit zostały wymienione w tabeli 14.7.

Kup książkę Poleć książkę

Page 16: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

142 Rozdział 14. Współbieżność

// tryLock (czas podany jako typ long i jednostka TimeUnit).if (lock.tryLock(15L, TimeUnit.DAYS)) {...} // 15 dni.

Tabela 14.7. Stałe wyliczenia TimeUnit

Stała Definicja jednostki Jednostka (s) Skrót

NANOSECONDS 1/1000 µs .000000001 ns

MICROSECONDS 1/1000 ms .000001 µs

MILLISECONDS 1/1000 s .001 ms

SECONDS s 1 sec

MINUTES 60 s 60 min

HOURS 60 min 3600 hr

DAYS 24 godziny 86400 d

Kup książkę Poleć książkę

Page 17: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

199

Skorowidz

λE, 169–174

Aadnotacja, 64, 65

@FunctionalInterface, 66agregacja (UML), 195alokacja pamięci, 52API

daty i godziny, 161–167Fluent, 161, 177, 178NIO.2, 131–133skryptowe, 155–159

archiwizacja programu Javy, 111argument classpath, 114ASCII, 21, 22asercje, 73asocjacja (UML), 195automatyczne pakowanie, 39, 40

Bbiblioteki

API Javy SE, 93–103CORBA, 100RMI, 100wspomagające programowanie

w Javie, 182, 183

blok, 68catch, 80–83finally, 80–83try, 80–83

błędy, 77, 79

CcamelCase, 17

Ddane składowe, 54definiowanie własnej klasy wyjątku,

84deserializacja obiektu, 129domknięcia, 169–174

Eelementy leksykalne, 21–32encje specjalne, 36, 37encje zmiennoprzecinkowe, 35, 36

FFluent, 177, 178formatowanie obiektów daty

i godziny, 166, 167

Kup książkę Poleć książkę

Page 18: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

200 Skorowidz

Framework Collections, 143–148framework Generics, 149–154

Ggarbage collection, 115–122generalizacja (UML), 196granice, 151, 152GZIP, 129, 130

Hhermetyzacja, 53hierarchia wyjątku, 75

Iidentyfikatory, 24implementacje silnika skryptów,

155–157inicjalizator statyczny, 62interfejs

Collection, 143Comparator, 146, 147, 148maszynowy, 164, 165Runnable, 136ScriptEngine, 155Serializable, 128

interfejsy, 63funkcjonalne, 66

ogólnego przeznaczenia, 172,173, 174

specjalnego przeznaczenia, 171,172

interpreter Javy, 109, 110

JJDBC, 166JDK, 105, 106języki skryptowe

zgodne ze specyfikacją JSR 223, 186,187

JRE, 105

Kkalendarz ISO, 162–164klasa, 53, 54

abstrakcyjna, 60BufferedInputStream, 126BufferedOutputStream, 126BufferedReader, 124, 127Collections, 145, 146DataInputStream, 125, 127DataOutputStream, 126, 128DateTimeFormatter, 166Executors, 140Files, 132FileWriter, 126InputStream, 124ObjectInputStream, 129ObjectOutputStream, 128opakowująca, 39OutputStream, 124Path, 132PrintWriter, 126, 127PushbackInputStream, 126Reader, 124Thread, 135ThreadPoolExecutor, 139wejścia-wyjścia, 123–130Writer, 124ZipInputSteam, 129ZipOutputStream, 129

klonowanie, 51, 52kolekcje, 143komentarze, 23kompilator Javy, 108, 109kompozycja (UML), 195konfiguracja

języka skryptowego, 157silnika skryptowego, 158

konstrukcjatry-catch, 81try-catch-finally, 82, 83try-finally, 82

konstruktory, 56, 57

Kup książkę Poleć książkę

Page 19: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Skorowidz 201

konwencje nazw, 17konwersja

między typami podstawowymii odnośnikowymi, 47

typów odnośnikowych, 46, 47kopiowanie typów odnośnikowych,

51, 52

Lliterały, 26, 28, 29

dla typów podstawowych, 33–35

Mmechanizm

CMS, 117G1, 117Parallel, 116Parallel Compacting, 116Serial, 116

metaadnotacja Retention, 65metoda, 54–56

abstrakcyjna, 61Duration.between(), 165equals(), 49finalize(), 122getAnnotation(), 65getMessage(), 85getPriority(), 137getState(), 137interrupt(), 137isAlive(), 137isInterrupted(), 137join(), 137klasy Object dotycząca wątków,

138klasy Thread dotycząca wątków,

137lines(), 127main(), 107notify(), 138notifyAll(), 138

printf(), 60printStackTrace(), 85setPriority(int), 137start(), 137statyczna dotycząca wątków, 138statyczna, 62toString(), 85typu vararg, 59wait(), 138write(), 128writeInt(), 126

modyfikatorabstract, 89default, 89dostępu, 87, 88final, 89Javy, 87–90native, 89package-private, 88private, 88protected, 88public, 88static, 89strictfp, 89synchronized, 89transient, 89volatile, 89

moment, 166

Nnadpisywanie metod, 56narzędzia

firm trzecich wspomagająceprogramowanie w Javie, 179–187

javadoc, 112, 113odmierzania czasu, 141przeznaczone

do zarządzania pamięcią, 117,118

wiersza poleceń, 108–114współbieżności, 139–141

Kup książkę Poleć książkę

Page 20: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

202 Skorowidz

NIO, 123NIO.2, 131–133notacja duże O, 147

Oobiekt, 53, 54obsługa wyjątków, 75–86odczyt gniazda, 127, 128odczyt plików, 124–126okres, 165OOP, Patrz programowanie

zorientowane obiektowooperatory, 26

równości, 48warunkowe, 38

Pparametry typu, 151, 152platforma

aplikacji sieciowychwspomagające programowaniew Javie, 184, 185

Java SE, 93–103pliki JAR, 111, 112podklasa, 57pola, 54polecenie, 67–74

assert, 73break, 72continue, 72do-while, 71for, 70if else if, 69if, 68if-else, 69iteracji, 70, 71obsługi wyjątków, 74puste, 68return, 73switch, 69w postaci wyrażenia, 67

warunkowe, 68, 69while, 71

porównywanieciągów tekstowych, 49typów odnośnikowych, 48, 49wyliczeń, 50

powiązanie tymczasowe (UML), 195Przestrzeń Metaspace, 121priorytety wątku, 136, 137programowanie

wielowątkowe, 135zorientowane obiektowo, 53–66

promocja liczbowa, 37przeciążanie metod, 55

Rrealizacja (UML), 196rozpakowywanie, 40

SSAM, 66sekwencje sterujące, 30separatory, 25serializacja obiektu, 128silniki skryptowe, 155–159słowo kluczowe, 24

abstract, 60extends, 57final, 62static, 62super, 58synchronize, 138synchronized, 73this, 58throw, 80

stałe statyczne, 62stany wątku, 137statyczne dane składowe, 61stos, 121

zmiana wielkości stosuwirtualnej maszyny Javy, 121, 122

Kup książkę Poleć książkę

Page 21: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

Skorowidz 203

struktura programu w Javie, 106–108strumienie danych wejściowych

i wyjściowych, 124, 125superklasa, 57synchronizacja, 138, 139synchronizator, 141System.err, 124System.in, 123System.out, 124

Śśrodowiska IDE, 183, 184

Ttablice, 45, 46TimeUnit, 141, 142tokeny, 21–32tworzenie archiwum ZIP

i rozpakowywanie plików, 129, 130typy

generyczne, specjalizacja, 153odnośnikowe, 43–52podstawowe, 33–41

a typy odnośnikowe, 44proste, 33–41

UUML, 189–198

diagram klas, 189–191diagram obiektu, 191diagram pakietu, 192, 193diagram sekwencji, 196, 197relacje klas, 194–196

Unicode, 21symbole walut, 31, 32

usuwanie nieużytków, 115–122opcje w wierszu poleceń, 118–120

Wwartość domyślna, 44wątki, 135–142weryfikacja silnika skryptowego, 158współbieżne kolekcje, 141współbieżność, 135–142wyjątek, 75wyjątki

niesprawdzane, 76–79sprawdzane, 76–78

wyliczenia, 63wyrażenia lambda, 169–174

XXSD, 166

Zzapis

gniazda, 127, 128pliku, 124–126

zarządzanie pamięcią, 115–122zasada zastępowania, 151ZIP, 129zmienne egzemplarza, 44, 54zmienne lokalne, 44znaki

ASCII, 22, 23wieloznaczne, 151, 152

Zunifikowany język modelowania,Patrz UML

Kup książkę Poleć książkę

Page 22: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe

204 Skorowidz

Kup książkę Poleć książkę

Page 24: Tytuł oryginału: Java 8 Pocket Guide · Symbole walut w Unicode 31 Rozdział 3. Typy proste .....33 Typy podstawowe 33 Literały dla typów podstawowych 33 Encje zmiennoprzecinkowe