Ява. Справочник программиста. 12-е издание

Товар

6 867  ₽
Ява. Справочник программиста. 12-е издание
  • 0 раз купили
  • 4.9  оценка
  • 2 осталось
  • 82 отзыва

Доставка

  • Почта России

    1618 ₽

  • Курьерская доставка EMS

    2153 ₽

Характеристики

Артикул
17041848016
Состояние
Новый
Język publikacji
polski
Waga produktu z opakowaniem jednostkowym
1.435 kg
Okładka
twarda
Nośnik
książka papierowa
Rok wydania
2020
Tematyka
Java
Tytuł
Java Kompendium programisty
Autor
Herbert Schildt
Wydawnictwo
Helion
Liczba stron
1048
Numer wydania
11
Wysokość produktu
0 cm

Описание

Java. Kompendium programisty. Wydanie XII

Java. Kompendium programisty. Wydanie XII

Herbert Schildt

Mimo upływu lat Java wciąż pozostaje jednym z najważniejszych języków programowania, konsekwentnie wybieranym przez profesjonalnych deweloperów. Jest równocześnie nowoczesna i dojrzała. Twórcy Javy od początku jej istnienia stawiali na elastyczność i stale dostosowywali ten język do zmieniających się warunków pracy programistów. Od pierwszego wydania Java zapewnia narzędzia do programowania rozwiązań internetowych, jest więc naturalnym wyborem programistów tworzących aplikacje internetowe. Jej możliwości jednak są o wiele większe - i rosną z każdą kolejną wersją. Konieczne jest więc sukcesywne zapoznawanie się z nowościami i ze zmianami wprowadzanymi w poszczególnych wydaniach Java SE.

Ta książka jest jedenastym wydaniem wyczerpującego kompendium programisty Javy, w pełni zaktualizowanym, uzupełnionym o nowości wprowadzone w Java SE 11. Opisuje język kompleksowo: jego składnię, słowa kluczowe oraz najistotniejsze zasady programowania. Zawiera także informacje o najważniejszych składnikach biblioteki Javy, takich jak klasy wejścia-wyjścia, framework Collections, biblioteka strumieni oraz narzędzia programowania współbieżnego. Oczywiście szczegółowo został tu opisany inny niezwykle ważny element - system modułów Javy. Przedstawiono też interaktywne narzędzie programistyczne JShell. Podręcznik jest przejrzysty, napisany jasnym i zrozumiałym językiem, co zdecydowanie ułatwia naukę. Co ważne, poszczególne zagadnienia zilustrowano licznymi przykładowymi fragmentami kodu źródłowego. Z tak przygotowanego materiału skorzystają wszyscy programiści Javy, zarówno początkujący, jak i profesjonalni deweloperzy.

W tej książce między innymi:

  • zasady programowania obiektowego
  • klasy wejścia-wyjścia oraz obsługa wyjątków
  • interfejsy i pakiety
  • wnioskowanie typów zmiennych lokalnych
  • obsługa zdarzeń, moduły i wyrażenia lambda
  • AWT, Swing, JavaBean i serwlety

Nie znajdziesz bardziej wyczerpującego omówienia Javy!

O autorze

Herb Schildt - jest jednym z najpopularniejszych autorów książek o programowaniu. Jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows. Był członkiem komitetu ANSI/ISO, który dokonał standaryzacji języka C++. Jego książki sprzedały się na całym świecie w ponad 3 milionach egzemplarzy i zostały przetłumaczone na większość języków.

Spis treści

O autorze 23

O redaktorze merytorycznym 24

Przedmowa 25

CZĘŚĆ I. JĘZYK JAVA

1. Historia i ewolucja języka Java 31

  • Rodowód Javy 31

    Narodziny nowoczesnego języka - C 31

    Język C++ - następny krok 33

    Podwaliny języka Java 33

  • Powstanie języka Java 33

    Powiązanie z językiem C# 35

  • Jak Java wywarła wpływ na internet 35

    Aplety Javy 35

    Bezpieczeństwo 36

    Przenośność 36

  • Magia języka Java - kod bajtowy 37
  • Wychodząc poza aplety 38
  • Szybszy harmonogram udostępniania 38
  • Serwlety - Java po stronie serwera 39
  • Hasła języka Java 39

    Prostota 40

    Obiektowość 40

    Niezawodność 40

    Wielowątkowość 40

    Neutralność architektury 41

    Interpretowalność i wysoka wydajność 41

    Rozproszenie 41

    Dynamika 41

  • Ewolucja Javy 41
  • Kultura innowacji 46

2. Podstawy języka Java 47

  • Programowanie obiektowe 47

    Dwa paradygmaty 47

    Abstrakcja 48

    Trzy zasady programowania obiektowego 48

  • Pierwszy przykładowy program 52

    Wpisanie kodu programu 52

    Kompilacja programów 53

    Bliższe spojrzenie na pierwszy przykładowy program 53

  • Drugi prosty program 55
  • Dwie instrukcje sterujące 56

    Instrukcja if 57

    Pętla for 58

  • Bloki kodu 59
  • Kwestie składniowe 60

    Znaki białe 60

    Identyfikatory 60

    Stałe 60

    Komentarze 61

    Separatory 61

    Słowa kluczowe języka Java 61

  • Biblioteki klas Javy 62

3. Typy danych, zmienne i tablice 63

  • Java to język ze ścisłą kontrolą typów 63
  • Typy proste 63
  • Typy całkowitoliczbowe 64

    Typ byte 64

    Typ short 65

    Typ int 65

    Typ long 65

  • Typy zmiennoprzecinkowe 65

    Typ float 66

    Typ double 66

  • Typ znakowy 66
  • Typ logiczny 68
  • Bliższe spojrzenie na stałe 68

    Stałe całkowitoliczbowe 68

    Stałe zmiennoprzecinkowe 69

    Stałe logiczne 70

    Stałe znakowe 70

    Stałe łańcuchowe 71

  • Zmienne 71

    Deklaracja zmiennej 71

    Inicjalizacja dynamiczna 72

    Zasięg i czas życia zmiennych 72

  • Konwersja typów i rzutowanie 74

    Automatyczna konwersja typów 74

    Rzutowanie niezgodnych typów 75

  • Automatyczne rozszerzanie typów w wyrażeniach 76

    Zasady rozszerzania typu 76

  • Tablice 77

    Tablice jednowymiarowe 77

    Tablice wielowymiarowe 79

    Alternatywna składnia deklaracji tablicy 82

  • Wnioskowanie typów zmiennych lokalnych 83

    Ograniczenia var 85

  • Kilka słów o łańcuchach 85

4. Operatory 87

  • Operatory arytmetyczne 87

    Podstawowe operatory arytmetyczne 88

    Operator reszty z dzielenia 88

    Operatory arytmetyczne z przypisaniem 89

    Inkrementacja i dekrementacja 90

  • Operatory bitowe 91

    Logiczne operatory bitowe 92

    Przesunięcie w lewo 94

    Przesunięcie w prawo 95

    Przesunięcie w prawo bez znaku 96

    Operatory bitowe z przypisaniem 97

  • Operatory relacji 98
  • Operatory logiczne 99

    Operatory logiczne ze skracaniem 100

  • Operator przypisania 101
  • Operator ? 101
  • Kolejność wykonywania operatorów 102
  • Stosowanie nawiasów okrągłych 102

5. Instrukcje sterujące 105

  • Instrukcje wyboru 105

    Instrukcja if 105

    Instrukcja switch 108

  • Instrukcje iteracyjne 111

    Pętla while 112

    Pętla do-while 113

    Pętla for 115

    Wersja for-each pętli for 118

    Wnioskowanie typów zmiennych lokalnych w pętlach 122

    Pętle zagnieżdżone 123

  • Instrukcje skoku 123

    Instrukcja break 124

    Instrukcja continue 127

    Instrukcja return 128

6. Wprowadzenie do klas 129

  • Klasy 129

    Ogólna postać klasy 129

    Prosta klasa 130

  • Deklarowanie obiektów 132

    Bliższe spojrzenie na operator new 133

  • Przypisywanie zmiennych referencyjnych do obiektów 133
  • Wprowadzenie do metod 134

    Dodanie metody do klasy Box 134

    Zwracanie wartości 136

    Dodanie metody przyjmującej parametry 137

  • Konstruktor 139

    Konstruktor sparametryzowany 140

  • Słowo kluczowe this 141

    Ukrywanie zmiennych składowych 141

  • Mechanizm odzyskiwania pamięci 142
  • Klasa stosu 142

7. Dokładniejsze omówienie metod i klas 145

  • Przeciążanie metod 145

    Przeciążanie konstruktorów 147

  • Obiekty jako parametry 149
  • Dokładniejsze omówienie przekazywania argumentów 151
  • Zwracanie obiektów 152
  • Rekurencja 153
  • Wprowadzenie do kontroli dostępu 155
  • Składowe statyczne 158
  • Słowo kluczowe final 159
  • Powtórka z tablic 160
  • Klasy zagnieżdżone i klasy wewnętrzne 161
  • Omówienie klasy String 164
  • Wykorzystanie argumentów wiersza poleceń 165
  • Zmienna liczba argumentów 166

    Przeciążanie metod o zmiennej liczbie argumentów 169

    Zmienna liczba argumentów i niejednoznaczności 170

  • Stosowanie wnioskowania typów zmiennych lokalnych z typami referencyjnymi 171

8. Dziedziczenie 173

  • Podstawy dziedziczenia 173

    Dostęp do składowych a dziedziczenie 174

    Bardziej praktyczny przykład 175

    Zmienna klasy bazowej może zawierać referencję do obiektu klasy pochodnej 177

  • Słowo kluczowe super 178

    Wykorzystanie słowa kluczowego super do wywołania konstruktora klasy bazowej 178

    Drugie zastosowanie słowa kluczowego super 181

  • Tworzenie hierarchii wielopoziomowej 182
  • Kiedy są wykonywane konstruktory? 184
  • Przesłanianie metod 185
  • Dynamiczne przydzielanie metod 187

    Dlaczego warto przesłaniać metody? 188

    Zastosowanie przesłaniania metod 188

  • Klasy abstrakcyjne 190
  • Słowo kluczowe final i dziedziczenie 192

    Słowo kluczowe final zapobiega przesłanianiu 192

    Słowo kluczowe final zapobiega dziedziczeniu 193

  • Wnioskowanie typów zmiennych lokalnych a dziedziczenie 193
  • Klasa Object 195

9. Pakiety i interfejsy 197

  • Pakiety 197

    Definiowanie pakietu 197

    Znajdowanie pakietów i ścieżka CLASSPATH 198

    Prosty przykład pakietu 199

  • Dostęp do pakietów i składowych 199

    Przykład dostępu 200

  • Import pakietów 203
  • Interfejsy 204

    Definiowanie interfejsu 205

    Implementacja interfejsu 206

    Interfejsy zagnieżdżone 208

    Stosowanie interfejsów 209

    Zmienne w interfejsach 211

    Interfejsy można rozszerzać 213

  • Metody domyślne 214

    Podstawy metod domyślnych 215

    Bardziej praktyczny przykład 216

    Problemy wielokrotnego dziedziczenia 217

  • Metody statyczne w interfejsach 217
  • Stosowanie metod prywatnych w interfejsach 218
  • Ostatnie uwagi dotyczące pakietów i interfejsów 219

10. Obsługa wyjątków 221

  • Podstawy obsługi wyjątków 221
  • Typy wyjątków 222
  • Nieprzechwycone wyjątki 222
  • Stosowanie instrukcji try i catch 223

    Wyświetlenie opisu wyjątku 224

  • Wiele klauzul catch 225
  • Zagnieżdżone instrukcje try 226
  • Instrukcja throw 228
  • Klauzula throws 229
  • Słowo kluczowe finally 229
  • Wyjątki wbudowane w język Java 231
  • Tworzenie własnej klasy pochodnej wyjątków 231
  • Łańcuch wyjątków 234
  • Trzy dodatkowe cechy wyjątków 235
  • Wykorzystanie wyjątków 236

11. Programowanie wielowątkowe 237

  • Model wątków języka Java 238

    Priorytety wątków 239

    Synchronizacja 239

    Przekazywanie komunikatów 240

    Klasa Thread i interfejs Runnable 240

  • Wątek główny 240
  • Tworzenie wątku 242

    Implementacja interfejsu Runnable 242

    Rozszerzanie klasy Thread 244

    Wybór odpowiedniego podejścia 244

  • Tworzenie wielu wątków 245
  • Stosowanie metod isAlive() i join() 246
  • Priorytety wątków 248
  • Synchronizacja 249

    Synchronizacja metod 249

    Instrukcja synchronized 251

  • Komunikacja międzywątkowa 252

    Zakleszczenie 256

  • Zawieszanie, wznawianie i zatrzymywanie wątków 258
  • Uzyskiwanie stanu wątku 260
  • Stosowanie metody wytwórczej do tworzenia i uruchamiania wątku 261
  • Korzystanie z wielowątkowości 262

12. Wyliczenia, automatyczne opakowywanie typów prostych i adnotacje 263

  • Typy wyliczeniowe 263

    Podstawy wyliczeń 263

    Metody values() i valueOf() 265

    Wyliczenia Javy jako typy klasowe 266

    Wyliczenia dziedziczą po klasie Enum 268

    Inny przykład wyliczenia 269

  • Opakowania typów 271

    Klasa Character 271

    Klasa Boolean 271

    Opakowania typów numerycznych 272

  • Automatyczne opakowywanie typów prostych 273

    Automatyczne opakowywanie i metody 274

    Automatyczne opakowywanie i rozpakowywanie w wyrażeniach 274

    Automatyczne opakowywanie typów znakowych i logicznych 276

    Automatyczne opakowywanie pomaga zapobiegać błędom 276

    Słowo ostrzeżenia 277

  • Adnotacje 277

    Podstawy tworzenia adnotacji 278

    Określanie strategii zachowywania adnotacji 278

    Odczytywanie adnotacji w trakcie działania programu za pomocą refleksji 279

    Interfejs AnnotatedElement 283

    Wartości domyślne 283

    Adnotacje znacznikowe 285

    Adnotacje jednoelementowe 285

    Wbudowane adnotacje 287

  • Adnotacje typów 288
  • Adnotacje powtarzalne 292
  • Ograniczenia 294

13. Wejście-wyjście, instrukcja try z zasobami i inne tematy 295

  • Podstawowa obsługa wejścia i wyjścia 295

    Strumienie 296

    Strumienie znakowe i bajtowe 296

    Predefiniowane strumienie 298

  • Odczyt danych z konsoli 298

    Odczyt znaków 298

    Odczyt łańcuchów 299

  • Wyświetlanie informacji na konsoli 301
  • Klasa PrintWriter 301
  • Odczyt i zapis plików 302
  • Automatyczne zamykanie pliku 307
  • Modyfikatory transient i volatile 310
  • Operator instanceof 311
  • Modyfikator strictfp 313
  • Metody napisane w kodzie rdzennym 313
  • Stosowanie asercji 313

    Opcje włączania i wyłączania asercji 315

  • Import statyczny 316
  • Wywoływanie przeciążonych konstruktorów za pomocą this() 318
  • Kilka słów o kompaktowych profilach API 320

14. Typy sparametryzowane 321

  • Czym są typy sparametryzowane? 321
  • Prosty przykład zastosowania typów sparametryzowanych 322

    Typy sparametryzowane działają tylko dla typów referencyjnych 325

    Typy sparametryzowane różnią się, jeśli mają inny argument typu 325

    W jaki sposób typy sparametryzowane zwiększają bezpieczeństwo? 325

  • Klasa sparametryzowana z dwoma parametrami typu 327
  • Ogólna postać klasy sparametryzowanej 328
  • Typy ograniczone 328
  • Zastosowanie argumentów wieloznacznych 330

    Ograniczony argument wieloznaczny 333

  • Tworzenie metody sparametryzowanej 337

    Konstruktory sparametryzowane 338

  • Interfejsy sparametryzowane 339
  • Typy surowe i starszy kod 341
  • Hierarchia klas sparametryzowanych 343

    Zastosowanie sparametryzowanej klasy bazowej 343

    Podklasa sparametryzowana 345

    Porównywanie typów w hierarchii klas sparametryzowanych w czasie wykonywania 346

    Rzutowanie 348

    Przesłanianie metod w klasach sparametryzowanych 348

  • Wnioskowanie typów a typy sparametryzowane 349
  • Wnioskowanie typów zmiennych lokalnych a typy sparametryzowane 350
  • Znoszenie 350

    Metody mostu 351

  • Błędy niejednoznaczności 352
  • Pewne ograniczenia typów sparametryzowanych 353

    Nie można tworzyć egzemplarza parametru typu 353

    Ograniczenia dla składowych statycznych 354

    Ograniczenia tablic typów sparametryzowanych 354

    Ograniczenia wyjątków typów sparametryzowanych 355

15. Wyrażenia lambda 357

  • Wprowadzenie do wyrażeń lambda 357

    Podstawowe informacje o wyrażeniach lambda 358

    Interfejsy funkcyjne 358

    Kilka przykładów wyrażeń lambda 359

  • Blokowe wyrażenia lambda 362
  • Sparametryzowane interfejsy funkcyjne 364
  • Przekazywanie wyrażeń lambda jako argumentów 365
  • Wyrażenia lambda i wyjątki 368
  • Wyrażenia lambda i przechwytywanie zmiennych 369
  • Referencje do metod 370

    Referencje do metod statycznych 370

    Referencje do metod instancyjnych 371

    Referencje do metod a typy sparametryzowane 374

  • Referencje do konstruktorów 376
  • Predefiniowane interfejsy funkcyjne 380

16. Moduły 383

  • Podstawowe informacje o modułach 383

    Przykład prostego modułu 384

    Kompilowanie i uruchamianie przykładowej aplikacji 388

    Dokładniejsze informacje o instrukcjach requires i exports 389

  • java.base i moduły platformy 390
  • Stary kod i moduł nienazwany 390
  • Eksportowanie do konkretnego modułu 391
  • Wymagania przechodnie 392
  • Stosowanie usług 396

    Podstawowe informacje o usługach i dostawcach usług 396

    Słowa kluczowe związane z usługami 397

    Przykład stosowania usług i modułów 397

  • Grafy modułów 403
  • Trzy wyspecjalizowane cechy modułów 404

    Moduły otwarte 404

    Instrukcja opens 404

    Instrukcja requires static 404

  • Wprowadzenie do jlink i plików JAR modułów 405

    Dołączanie plików dostarczonych jako struktura katalogów 405

    Konsolidacja modularnych plików JAR 405

    Pliki JMOD 406

  • Kilka słów o warstwach i modułach automatycznych 406
  • Końcowe uwagi dotyczące modułów 407

CZĘŚĆ II. BIBLIOTEKA JĘZYKA JAVA

17. Obsługa łańcuchów 411

  • Konstruktory klasy String 411
  • Długość łańcucha 413
  • Specjalne operacje na łańcuchach 413

    Literały tekstowe 413

    Konkatenacja łańcuchów 414

    Konkatenacja łańcuchów z innymi typami danych 414

    Konwersja łańcuchów i metoda toString() 415

  • Wyodrębnianie znaków 416

    Metoda charAt() 416

    Metoda getChars() 416

    Metoda getBytes() 416

    Metoda toCharArray() 417

  • Porównywanie łańcuchów 417

    Metody equals() i equalsIgnoreCase() 417

    Metoda regionMatches() 418

    Metody startsWith() i endsWith() 418

    Metoda equals() kontra operator == 418

    Metoda compareTo() 419

  • Przeszukiwanie łańcuchów 420
  • Modyfikowanie łańcucha 421

    Metoda substring() 421

    Metoda concat() 422

    Metoda replace() 422

    Metody trim() i strip() 423

  • Konwersja danych za pomocą metody valueOf() 424
  • Zmiana wielkości liter w łańcuchu 424
  • Łączenie łańcuchów 425
  • Dodatkowe metody klasy String 425
  • Klasa StringBuffer 426

    Konstruktory klasy StringBuffer 427

    Metody length() i capacity() 427

    Metoda ensureCapacity() 427

    Metoda setLength() 428

    Metody charAt() i setCharAt() 428

    Metoda getChars() 428

    Metoda append() 429

    Metoda insert() 429

    Metoda reverse() 430

    Metody delete() i deleteCharAt() 430

    Metoda replace() 431

    Metoda substring() 431

    Dodatkowe metody klasy StringBuffer 431

  • Klasa StringBuilder 432

18. Pakiet java.lang 433

  • Opakowania typów prostych 433

    Klasa Number 434

    Klasy Double i Float 434

    Metody isInfinite() i isNan() 437

    Klasy Byte, Short, Integer i Long 437

    Klasa Character 445

    Dodatki wprowadzone w celu obsługi punktów kodowych Unicode 446

    Klasa Boolean 449

  • Klasa Void 449
  • Klasa Process 450
  • Klasa Runtime 451

    Zarządzanie pamięcią 452

    Wykonywanie innych programów 453

  • Runtime.Version 453
  • Klasa ProcessBuilder 455
  • Klasa System 457

    Wykorzystanie metody currentTimeMillis() do obliczania czasu wykonywania programu 458

    Użycie metody arraycopy() 459

    Właściwości środowiska 459

  • Interfejs System.Logger i klasa System.LoggerFinder 460
  • Klasa Object 460
  • Wykorzystanie metody clone() i interfejsu Cloneable 460
  • Klasa Class 462
  • Klasa ClassLoader 465
  • Klasa Math 465

    Funkcje trygonometryczne 465

    Funkcje wykładnicze 466

    Funkcje zaokrągleń 466

    Inne metody klasy Math 467

  • Klasa StrictMath 469
  • Klasa Compiler 469
  • Klasy Thread i ThreadGroup oraz interfejs Runnable 469

    Interfejs Runnable 469

    Klasa Thread 470

    Klasa ThreadGroup 472

  • Klasy ThreadLocal i InheritableThreadLocal 475
  • Klasa Package 475
  • Klasa Module 476
  • Klasa ModuleLayer 477
  • Klasa RuntimePermission 477
  • Klasa Throwable 477
  • Klasa SecurityManager 477
  • Klasa StackTraceElement 477
  • Klasa StackWalker i interfejs StackWalker.StackFrame 478
  • Klasa Enum 478
  • Klasa ClassValue 479
  • Interfejs CharSequence 479
  • Interfejs Comparable 480
  • Interfejs Appendable 480
  • Interfejs Iterable 480
  • Interfejs Readable 481
  • Interfejs AutoCloseable 481
  • Interfejs Thread.UncaughtExceptionHandler 481
  • Podpakiety pakietu java.lang 481

    Podpakiet java.lang.annotation 482

    Podpakiet java.lang.instrument 482

    Podpakiet java.lang.invoke 482

    Podpakiet java.lang.management 482

    Podpakiet java.lang.module 482

    Podpakiet java.lang.ref 482

    Podpakiet java.lang.reflect 482

19. Pakiet java.util, część 1. - kolekcje 483

  • Wprowadzenie do kolekcji 484
  • Interfejsy kolekcji 485

    Interfejs Collection 486

    Interfejs List 488

    Interfejs Set 489

    Interfejs SortedSet 490

    Interfejs NavigableSet 490

    Interfejs Queue 491

    Interfejs Deque 492

  • Klasy kolekcji 493

    Klasa ArrayList 494

    Klasa LinkedList 497

    Klasa HashSet 498

    Klasa LinkedHashSet 499

    Klasa TreeSet 499

    Klasa PriorityQueue 501

    Klasa ArrayDeque 501

    Klasa EnumSet 502

  • Dostęp do kolekcji za pomocą iteratora 502

    Korzystanie z iteratora Iterator 504

    Pętla typu for-each jako alternatywa dla iteratora 505

  • Spliteratory 506
  • Przechowywanie w kolekcjach własnych klas 509
  • Interfejs RandomAccess 510
  • Korzystanie z map 510

    Interfejsy map 510

    Klasy map 516

  • Komparatory 520

    Wykorzystanie komparatora 522

  • Algorytmy kolekcji 526
  • Klasa Arrays 531
  • Starsze klasy i interfejsy 535

    Interfejs Enumeration 535

    Klasa Vector 536

    Klasa Stack 539

    Klasa Dictionary 540

    Klasa Hashtable 541

    Klasa Properties 544

    Wykorzystanie metod store() i load() 547

  • Ostatnie uwagi na temat kolekcji 548

20. Pakiet java.util, część 2. - pozostałe klasy użytkowe 549

  • Klasa StringTokenizer 549
  • Klasa BitSet 551
  • Klasy Optional, OptionalDouble, OptionalInt oraz OptionalLong 553
  • Klasa Date 556
  • Klasa Calendar 557
  • Klasa GregorianCalendar 560
  • Klasa TimeZone 561
  • Klasa SimpleTimeZone 562
  • Klasa Locale 563
  • Klasa Random 564
  • Klasy Timer i TimerTask 566
  • Klasa Currency 568
  • Klasa Formatter 569

    Konstruktory klasy Formatter 570

    Metody klasy Formatter 570

    Podstawy formatowania 570

    Formatowanie łańcuchów i znaków 573

    Formatowanie liczb 573

    Formatowanie daty i godziny 574

    Specyfikatory %n i %% 575

    Określanie minimalnej szerokości pola 576

    Określanie precyzji 577

    Używanie znaczników (flag) formatów 578

    Wyrównywanie danych wyjściowych 578

    Znaczniki spacji, plusa, zera i nawiasów 579

    Znacznik przecinka 580

    Znacznik # 580

    Opcja wielkich liter 580

    Stosowanie indeksu argumentu 581

    Zamykanie obiektu klasy Formatter 582

    Metoda printf() w Javie 582

  • Klasa Scanner 582

    Konstruktory klasy Scanner 583

    Podstawy skanowania 584

    Kilka przykładów użycia klasy Scanner 587

    Ustawianie separatorów 590

    Pozostałe elementy klasy Scanner 591

  • Klasy ResourceBundle, ListResourceBundle i PropertyResourceBundle 592
  • Dodatkowe klasy i interfejsy użytkowe 596
  • Podpakiety pakietu java.util 597

    java.util.concurrent, java.util.concurrent.atomic oraz java.util.concurrent.locks 598

    java.util.function 598

    java.util.jar 600

    java.util.logging 600

    java.util.prefs 600

    java.util.regex 600

    java.util.spi 601

    java.util.stream 601

    java.util.zip 601

21. Operacje wejścia-wyjścia: analiza pakietu java.io 603

  • Klasy i interfejsy obsługujące operacje wejścia-wyjścia 604
  • Klasa File 604

    Katalogi 607

    Stosowanie interfejsu FilenameFilter 608

    Alternatywna metoda listFiles() 609

    Tworzenie katalogów 609

  • Interfejsy AutoCloseable, Closeable i Flushable 609
  • Wyjątki operacji wejścia-wyjścia 610
  • Dwa sposoby zamykania strumieni 610
  • Klasy strumieni 611
  • Strumienie bajtów 612

    Klasa InputStream 612

    Klasa OutputStream 613

    Klasa FileInputStream 613

    Klasa FileOutputStream 615

    Klasa ByteArrayInputStream 617

    Klasa ByteArrayOutputStream 618

    Filtrowane strumienie bajtów 620

    Buforowane strumienie bajtów 620

    Klasa SequenceInputStream 623

    Klasa PrintStream 625

    Klasy DataOutputStream i DataInputStream 627

    Klasa RandomAccessFile 628

  • Strumienie znaków 629

    Klasa Reader 629

    Klasa Writer 629

    Klasa FileReader 629

    Klasa FileWriter 631

    Klasa CharArrayReader 632

    Klasa CharArrayWriter 633

    Klasa BufferedReader 634

    Klasa BufferedWriter 636

    Klasa PushbackReader 636

    Klasa PrintWriter 637

  • Klasa Console 638
  • Serializacja 639

    Interfejs Serializable 640

    Interfejs Externalizable 640

    Interfejs ObjectOutput 640

    Klasa ObjectOutputStream 641

    Interfejs ObjectInput 642

    Klasa ObjectInputStream 642

    Przykład serializacji 643

  • Korzyści wynikające ze stosowania strumieni 645

22. System NIO 647

  • Klasy systemu NIO 647
  • Podstawy systemu NIO 648

    Bufory 648

    Kanały 648

    Zestawy znaków i selektory 651

  • Udoskonalenia dodane w systemie NIO.2 651

    Interfejs Path 651

    Klasa Files 651

    Klasa Paths 654

    Interfejsy atrybutów plików 655

    Klasy FileSystem, FileSystems i FileStore 657

  • Stosowanie systemu NIO 657

    Stosowanie systemu NIO dla operacji wejścia-wyjścia na kanałach 658

    Stosowanie systemu NIO dla operacji wejścia-wyjścia na strumieniach 666

    Stosowanie systemu NIO dla operacji na ścieżkach i systemie plików 668

23. Obsługa sieci 675

  • Podstawy działania sieci 675
  • Klasy i interfejsy pakietu java.net obsługujące komunikację sieciową 676
  • Klasa InetAddress 677

    Metody wytwórcze 677

    Metody klasy 678

  • Klasy Inet4Address oraz Inet6Address 679
  • Gniazda klientów TCP/IP 679
  • URL 682
  • Klasa URLConnection 683
  • Klasa HttpURLConnection 685
  • Klasa URI 687
  • Pliki cookie 687
  • Gniazda serwerów TCP/IP 688
  • Datagramy 688

    Klasa DatagramSocket 689

    Klasa DatagramPacket 689

    Przykład użycia datagramów 690

  • Prezentacja pakietu java.net.http 692

    Trzy kluczowe elementy 692

    Prosty przykład użycia API klienta HTTP 695

    Czego jeszcze warto dowiedzieć się o pakiecie java.net.http? 696

24. Obsługa zdarzeń 697

  • Dwa mechanizmy obsługi zdarzeń 697
  • Model obsługi zdarzeń oparty na ich delegowaniu 698

    Zdarzenia 698

    Źródła zdarzeń 698

    Obiekty nasłuchujące zdarzeń 699

  • Klasy zdarzeń 699

    Klasa ActionEvent 701

    Klasa AdjustmentEvent 701

    Klasa ComponentEvent 702

    Klasa ContainerEvent 702

    Klasa FocusEvent 703

    Klasa InputEvent 704

    Klasa ItemEvent 704

  • Klasa KeyEvent 705

    Klasa MouseEvent 706

    Klasa MouseWheelEvent 707

    Klasa TextEvent 708

    Klasa WindowEvent 708

  • Źródła zdarzeń 709
  • Interfejsy nasłuchujące zdarzeń 710

    Interfejs ActionListener 711

    Interfejs AdjustmentListener 711

    Interfejs ComponentListener 711

    Interfejs ContainerListener 711

    Interfejs FocusListener 711

    Interfejs ItemListener 711

    Interfejs KeyListener 711

    Interfejs MouseListener 712

    Interfejs MouseMotionListener 712

    Interfejs MouseWheelListener 712

    Interfejs TextListener 712

    Interfejs WindowFocusListener 712

    Interfejs WindowListener 712

  • Stosowanie modelu delegowania zdarzeń 713

    Kluczowe zagadnienia tworzenia aplikacji graficznych z użyciem AWT 713

    Obsługa zdarzeń generowanych przez mysz 714

    Obsługa zdarzeń generowanych przez klawiaturę 717

  • Klasy adapterów 720
  • Klasy wewnętrzne 722

    Anonimowa klasa wewnętrzna 724

25. Wprowadzenie do AWT: praca z oknami, grafiką i tekstem 727

  • Klasy AWT 728
  • Podstawy okien 730

    Klasa Component 730

    Klasa Container 730

    Klasa Panel 730

    Klasa Window 731

    Klasa Frame 731

    Klasa Canvas 731

  • Praca z oknami typu Frame 731

    Ustawianie wymiarów okna 731

    Ukrywanie i wyświetlanie okna 732

    Ustawianie tytułu okna 732

    Zamykanie okna typu Frame 732

    Metoda paint() 732

    Wyświetlanie łańcuchów znaków 732

    Określanie koloru tekstu i tła 733

    Żądanie ponownego wyświetlenia zawartości okna 733

    Tworzenie aplikacji korzystających z klasy Frame 734

  • Wprowadzenie do stosowania grafiki 735

    Rysowanie odcinków 735

    Rysowanie prostokątów 735

    Rysowanie elips, kół i okręgów 736

    Rysowanie łuków 736

    Rysowanie wielokątów 736

    Prezentacja metod rysujących 737

    Dostosowywanie rozmiarów obiektów graficznych 738

  • Praca z klasą Color 739

    Metody klasy Color 740

    Ustawianie bieżącego koloru kontekstu graficznego 741

    Program demonstrujący zastosowanie klasy Color 741

  • Ustawianie trybu rysowania 742
  • Praca z czcionkami 743

    Określanie dostępnych czcionek 745

    Tworzenie i wybieranie czcionek 746

    Uzyskiwanie informacji o czcionkach 748

  • Zarządzanie tekstowymi danymi wyjściowymi z wykorzystaniem klasy FontMetrics 749

26. Stosowanie kontrolek AWT, menedżerów układu graficznego oraz menu 753

  • Podstawy kontrolek AWT 754

    Dodawanie i usuwanie kontrolek 754

    Odpowiadanie na zdarzenia kontrolek 754

    Wyjątek HeadlessException 755

  • Etykiety 755
  • Stosowanie przycisków 756

    Obsługa zdarzeń przycisków 757

  • Stosowanie pól wyboru 760

    Obsługa zdarzeń pól wyboru 761

  • Klasa CheckboxGroup 762
  • Kontrolki list rozwijanych 764

    Obsługa zdarzeń list rozwijanych 765

  • Stosowanie list 766

    Obsługa zdarzeń generowanych przez listy 767

  • Zarządzanie paskami przewijania 769

    Obsługa zdarzeń generowanych przez paski przewijania 770

  • Stosowanie kontrolek typu TextField 772

    Obsługa zdarzeń generowanych przez kontrolkę TextField 773

  • Stosowanie kontrolek typu TextArea 774
  • Wprowadzenie do menedżerów układu graficznego komponentów 776

    FlowLayout 777

    BorderLayout 778

    Stosowanie obramowań 779

    GridLayout 781

    Klasa CardLayout 782

    Klasa GridBagLayout 785

  • Menu i paski menu 789
  • Okna dialogowe 794
  • Przesłanianie metody paint() 797

27. Obrazy 799

  • Formaty plików 799
  • Podstawy przetwarzania obrazów: tworzenie, wczytywanie i wyświetlanie 800

    Tworzenie obiektu obrazu 800

    Ładowanie obrazu 800

    Wyświetlanie obrazu 801

  • Podwójne buforowanie 802
  • Interfejs ImageProducer 804

    Klasa MemoryImageSource 805

  • Interfejs ImageConsumer 806

    Klasa PixelGrabber 806

  • Klasa ImageFilter 809

    Klasa CropImageFilter 809

    Klasa RGBImageFilter 810

  • Dodatkowe klasy obsługujące obrazy 821

28. Narzędzia współbieżności 823

  • Pakiety interfejsu Concurrent API 824

    Pakiet java.util.concurrent 824

    Pakiet java.util.concurrent.atomic 825

    Pakiet java.util.concurrent.locks 825

  • Korzystanie z obiektów służących do synchronizacji 825

    Klasa Semaphore 825

    Klasa CountDownLatch 830

    CyclicBarrier 832

    Klasa Exchanger 834

    Klasa Phaser 835

  • Korzystanie z egzekutorów 842

    Przykład prostego egzekutora 842

    Korzystanie z interfejsów Callable i Future 844

  • Typ wyliczeniowy TimeUnit 846
  • Kolekcje współbieżne 847
  • Blokady 847
  • Operacje atomowe 850
  • Programowanie równoległe przy użyciu frameworku Fork/Join 851

    Najważniejsze klasy frameworku Fork/Join 852

    Strategia dziel i zwyciężaj 855

    Prosty przykład użycia frameworku Fork/Join 855

    Znaczenie poziomu równoległości 858

    Przykład użycia klasy RecursiveTask 860

    Asynchroniczne wykonywanie zadań 862

    Anulowanie zadania 863

    Określanie statusu wykonania zadania 863

    Ponowne uruchamianie zadania 863

    Pozostałe zagadnienia 863

    Wskazówki dotyczące stosowania frameworku Fork/Join 865

  • Pakiet Concurrency Utilities a tradycyjne metody języka Java 866

29. API strumieni 867

  • Podstawowe informacje o strumieniach 867

    Interfejsy strumieni 868

    Jak można uzyskać strumień? 870

    Prosty przykład stosowania strumieni 871

  • Operacje redukcji 874
  • Stosowanie strumieni równoległych 876
  • Odwzorowywanie 878
  • Tworzenie kolekcji 882
  • Iteratory i strumienie 885

    Stosowanie typu Iterator i strumieni 885

    Stosowanie spliteratorów 886

  • Inne możliwości API strumieni 889

30. Wyrażenia regularne i inne pakiety 891

  • Przetwarzanie wyrażeń regularnych 891

    Klasa Pattern 892

    Klasa Matcher 892

    Składnia wyrażeń regularnych 893

    Przykład dopasowywania do wzorca 893

    Dwie opcje dopasowywania do wzorca 898

    Przegląd wyrażeń regularnych 898

  • Refleksje 898
  • Zdalne wywoływanie metod (RMI) 901

    Prosta aplikacja typu klient-serwer wykorzystująca RMI 902

  • Formatowanie dat i czasu przy użyciu pakietu java.text 905

    Klasa DateFormat 905

    Klasa SimpleDateFormat 906

  • Interfejs API dat i czasu - java.time 908

    Podstawowe klasy do obsługi dat i czasu 908

    Formatowanie dat i godzin 910

    Analiza łańcuchów zawierających daty i godziny 912

    Inne możliwości pakietu java.time 913

CZĘŚĆ III. WPROWADZENIE DO PROGRAMOWANIA GUI PRZY UŻYCIU PAKIETU SWING

31. Wprowadzenie do pakietu Swing 917

  • Geneza powstania biblioteki Swing 917
  • Bibliotekę Swing zbudowano na bazie zestawu narzędzi AWT 918
  • Podstawowe cechy biblioteki Swing 918

    Komponenty biblioteki Swing są lekkie 918

    Biblioteka Swing obsługuje dołączany wygląd i sposób obsługi 919

  • Podobieństwo do architektury MVC 919
  • Komponenty i kontenery 920

    Komponenty 920

    Kontenery 921

    Panele kontenerów najwyższego poziomu 921

  • Pakiety biblioteki Swing 922
  • Prosta aplikacja na bazie biblioteki Swing 922
  • Obsługa zdarzeń 926
  • Rysowanie w bibliotece Swing 929

    Podstawy rysowania 929

    Wyznaczanie obszaru rysowania 930

    Przykład rysowania 930

32. Przewodnik po pakiecie Swing 933

  • Klasy JLabel i ImageIcon 933
  • Klasa JTextField 935
  • Przyciski biblioteki Swing 936

    Klasa JButton 937

    Klasa JToggleButton 939

    Pola wyboru 940

    Przyciski opcji 942

  • Klasa JTabbedPane 944
  • Klasa JScrollPane 946
  • Klasa JList 948
  • Klasa JComboBox 951
  • Drzewa 953
  • Klasa JTable 955

33. Wprowadzenie do systemu menu pakietu Swing 959

  • Podstawy systemu menu 959
  • Przegląd klas JMenuBar, JMenu oraz JMenuItem 961

    Klasa JMenuBar 961

    Klasa JMenu 962

    Klasa JMenuItem 963

  • Tworzenie menu głównego 963
  • Dodawanie mnemonik i kombinacji klawiszy do opcji menu 967
  • Dodawanie obrazów i etykiet ekranowych do menu 969
  • Stosowanie klas JRadioButtonMenuItem i JCheckBoxMenuItem 970
  • Tworzenie menu podręcznych 972
  • Tworzenie paska narzędzi 974
  • Stosowanie akcji 977
  • Finalna postać programu MenuDemo 981
  • Dalsze poznawanie pakietu Swing 987

CZĘŚĆ IV. STOSOWANIE JAVY W PRAKTYCE

34. Java Beans 991

  • Czym jest komponent typu Java Bean? 991
  • Zalety komponentów Java Beans 992
  • Introspekcja 992

    Wzorce właściwości 992

    Wzorce projektowe dla zdarzeń 993

    Metody i wzorce projektowe 994

    Korzystanie z interfejsu BeanInfo 994

  • Właściwości ograniczone 994
  • Trwałość 995
  • Interfejs Customizer 995
  • Interfejs Java Beans API 995

    Klasa Introspector 997

    Klasa PropertyDescriptor 997

    Klasa EventSetDescriptor 997

    Klasa MethodDescriptor 997

  • Przykład komponentu Java Bean 997

35. Serwlety 1001

  • Podstawy 1001
  • Cykl życia serwletu 1002
  • Sposoby tworzenia serwletów 1002
  • Korzystanie z serwera Tomcat 1003
  • Przykład prostego serwletu 1004

    Tworzenie i kompilacja kodu źródłowego serwletu 1004

    Uruchamianie serwera Tomcat 1005

    Uruchamianie przeglądarki i generowanie żądania 1005

  • Interfejs Servlet API 1005
  • Pakiet javax.servlet 1005

    Interfejs Servlet 1006

    Interfejs ServletConfig 1006

    Interfejs ServletContext 1007

    Interfejs ServletRequest 1007

    Interfejs ServletResponse 1007

    Klasa GenericServlet 1007

    Klasa ServletInputStream 1007

    Klasa ServletOutputStream 1009

    Klasy wyjątków związanych z serwletami 1009

  • Odczytywanie parametrów serwletu 1009
  • Pakiet javax.servlet.http 1010

    Interfejs HttpServletRequest 1011

    Interfejs HttpServletResponse 1011

    Interfejs HttpSession 1011

    Klasa Cookie 1013

    Klasa HttpServlet 1014

  • Obsługa żądań i odpowiedzi HTTP 1014

    Obsługa żądań GET protokołu HTTP 1014

    Obsługa żądań POST protokołu HTTP 1016

  • Korzystanie ze znaczników kontekstu użytkownika 1017
  • Śledzenie sesji 1019

DODATKI

A. Komentarze dokumentujące 1023

  • Znaczniki narzędzia javadoc 1023

    Znacznik @author 1024

    Znacznik {@code} 1024

    Znacznik @deprecated 1025

    Znacznik {@docRoot} 1025

    Znacznik @exception 1025

    Znacznik @hidden 1025

    Znacznik {@index} 1025

    Znacznik {@inheritDoc} 1025

    Znacznik {@link} 1025

    Znacznik {@linkplain} 1026

    Znacznik {@literal} 1026

    Znacznik @param 1026

    Znacznik @provides 1026

    Znacznik @return 1026

    Znacznik @see 1026

    Znacznik @serial 1026

    Znacznik @serialData 1027

    Znacznik @serialField 1027

    Znacznik @since 1027

    Znacznik {@summary} 1027

    Znacznik @throws 1027

    Znacznik @uses 1027

    Znacznik {@value} 1027

    Znacznik @version 1028

  • Ogólna postać komentarzy dokumentacyjnych 1028
  • Wynik działania narzędzia javadoc 1028
  • Przykład korzystający z komentarzy dokumentacyjnych 1028

B. Wprowadzenie do JShell 1031

  • Podstawy JShell 1031
  • Wyświetlanie, edytowanie i ponowne wykonywanie kodu 1033
  • Dodanie metody 1034
  • Utworzenie klasy 1035
  • Stosowanie interfejsu 1036
  • Przetwarzanie wyrażeń i wbudowane zmienne 1037
  • Importowanie pakietów 1037
  • Wyjątki 1038
  • Inne polecenia JShell 1038
  • Dalsze poznawanie możliwości JShell 1039

C. Kompilowanie i uruchamianie prostych programów w jednym kroku 1041

Гарантии

  • Гарантии

    Мы работаем по договору оферты и предоставляем все необходимые документы.

  • Лёгкий возврат

    Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.

  • Безопасная оплата

    Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.

Отзывы о товаре

Рейтинг товара 4.9 / 5

82 отзыва

Russian English Polish