Деталі електронної книги

Java. Teoria w praktyce

Java. Teoria w praktyce

Michał Suwała

Eлектронна книга

Proszę państwa, oto Java

Mówisz: język programowania, myślisz: Java! Jeśli tak, masz rację - ten język niewątpliwie jest filarem współczesnej informatyki. Java należy do czołówki najpopularniejszych technologii i to właśnie nią szczególnie warto się zainteresować na początku nauki kodowania.

Książka Java. Teoria w praktyce została pomyślana tak, by krok po kroku przybliżać specyfikę tego języka programowania. Zaczniesz od podstaw - poznasz między innymi główne założenia, zgodnie z którymi działa Java: maszynę wirtualną, zmienne, operatory, instrukcje sterujące i tablice - by następnie przejść do bardziej zaawansowanych zagadnień. Dowiesz się, czym jest programowanie zorientowane obiektowo, zapoznasz się z paradygmatem programowania funkcyjnego i z zagadnieniem przetwarzania strumieniowego.

Ponadto nauczysz się:

  • korzystać z plików w swoich programach
  • implementować komunikację z bazą danych
  • stosować w praktyce pojęcia związane z wielowątkowością
  • przetwarzać datę i czas

W efekcie będziesz w pełni przygotowany do tego, by zacząć programować w Javie, a przecież o to chodzi!

Wstęp

Rozdział 1. Wprowadzenie do Javy

  • Historia języka
  • Główne założenia języka
    • Prostota i obiektowość
    • Przenośność, bezpieczeństwo, niezawodność i wydajność
    • Wielowątkowość i rozproszenie
    • Interpretowalność i niezależność od architektury
  • Maszyna wirtualna Javy
    • Model pamięci
  • Pakiet instalacyjny

Rozdział 2. Pierwszy program

  • Witaj, świecie!
  • Zasady składni kodu źródłowego
    • Identyfikatory
    • Literały
    • Słowa kluczowe
  • Potencjalne problemy
  • Korzystanie z IDE

Rozdział 3. Zmienne

  • Tworzenie zmiennych
  • Prymitywne typy danych
    • byte
    • short
    • int
    • long
    • float
    • double
  • Rzutowanie liczb zmiennoprzecinkowych na typy całkowite
  • Utrata precyzji w obliczeniach zmiennoprzecinkowych
  • char
  • boolean

Rozdział 4. Operatory

  • Operatory arytmetyczne
  • Operatory przypisania
  • Operatory logiczne
  • Operatory bitowe
  • Kolejność wykonywania operatorów

Rozdział 5. Instrukcje sterujące

  • Instrukcja if-else
  • Instrukcja switch
  • Pętle
    • Pętla while
    • Pętla do-while
    • Pętla for
    • Pętla for-each
  • Przerwania pętli
    • Instrukcja continue
    • Instrukcja break
    • Etykiety pętli

Rozdział 6. Tablice

  • Deklaracja tablicy
  • Operowanie na tablicy
  • Konstrukcja algorytmów opartych na tablicach
    • Obliczanie liczby wystąpień liczb dodatnich i ujemnych w tablicy
    • Obliczanie średniej z liczb w tablicy
    • Obliczanie liczby wielkich i małych liter alfabetu w tablicy
    • Sprawdzanie, czy znaki zawarte w tablicy tworzą palindrom
  • Tablice wielowymiarowe
    • Tablica dwuwymiarowa
    • Tablica trójwymiarowa

Rozdział 7. Paradygmat programowania zorientowanego obiektowo

  • Klasy i obiekty
  • Pakiety i importy
  • Modyfikatory widoczności
  • Atrybuty i metody
  • Tworzenie obiektów
  • Enkapsulacja
  • Konstruktory
  • Typ wyliczeniowy enum
  • Dziedziczenie
  • Klasy abstrakcyjne
  • Interfejsy
  • Polimorfizm

Rozdział 8. Klasy - zaawansowane możliwości

  • Przeładowanie metod
    • Zmienna liczba i kolejność argumentów
    • Varargs
    • Dopasowanie wersji metody do przekazanego argumentu
  • Przekazywanie argumentów przez wartość i referencję
    • Przekazywanie argumentów przez wartość
    • Przekazywanie argumentów przez referencję
  • Statyczne składowe klas
    • Zastosowanie
    • Statyczne stałe
  • Bloki kodu
    • Instancyjny blok inicjalizacyjny
    • Statyczny blok inicjalizacyjny
    • Porównanie bloków
  • Klasy zagnieżdżone
    • Klasa wewnętrzna
    • Klasa lokalna
    • Klasa anonimowa
    • Klasa zagnieżdżona statyczna
  • Rekordy
  • Refleksja
    • Klasa opisująca klasę - java.lang.Class
    • Reflection API
    • Zabawki w służbie refleksji
    • Podsumowanie
  • Adnotacje
    • Wbudowane adnotacje
    • Tworzenie adnotacji
    • Parametry adnotacji
    • Użycie adnotacji
    • Podsumowanie
  • Rzutowanie zmiennych obiektowych
    • Rzutowanie w dół
    • Rzutowanie w górę
    • Operator instanceof
    • Rzutowanie - błędy kompilacji

Rozdział 9. Wbudowane typy obiektowe

  • Typy opakowaniowe
  • Tworzenie zmiennych typu opakowaniowego
  • Operacje na duuużych liczbach
    • BigInteger
    • BigDecimal
  • Klasa String
    • Pula stringów - String Literal Pool
    • Niemodyfikowalność napisów
    • API klasy String
  • StringBuilder i StringBuffer
    • API klas StringBuilder
    • StringBuilder append()
    • StringBuilder insert(int offset, .)
    • StringBuilder delete(int startIndex, int endIndex)
    • StringBuilder reverse()
    • int capacity()

Rozdział 10. Wyjątki

  • Jak programować bez użycia wyjątków?
  • Pierwsze zetknięcie z wyjątkiem
  • Co to jest wyjątek?
  • Definiowanie klas wyjątków
  • Wbudowane klasy wyjątków
  • Wyjątki sprawdzalne i niesprawdzalne na etapie kompilacji
    • Wyjątki sprawdzalne
    • Wyjątki niesprawdzalne
  • Rzucanie wyjątków
    • Instrukcja throws
    • Instrukcja throw
  • Łapanie wyjątków
    • Klauzula try-catch
    • Łapanie wielu typów wyjątków
    • Łapanie wyjątków powiązanych dziedziczeniem
    • Deklaracja w throws najogólniejszego typu wyjątku
    • Blok finally
  • Wyjątki a dziedziczenie metod
    • Zawężanie listy wyjątków w podklasie
    • Rozszerzane listy wyjątków w podklasie
  • Klauzula try-with-resources
  • Przykład z użyciem wyjątków

Rozdział 11. Klasa Object

  • Object clone()
    • Płytka kopia
    • Głęboka kopia
  • boolean equals(Object obj)
    • Implementacja standardowa metody equals()
    • Implementacja equals() z wykorzystaniem klasy Objects
    • Przykład wywołania equals()
    • Zasady działania equals()
  • int hashCode()
    • Implementacja standardowa metody hashCode()
    • Implementacja hashCode() z wykorzystaniem klasy Objects
    • Przykład wywołania hashCode()
    • Konsekwencje nieodpowiedniego nadpisania metody hashCode()
  • Kontrakt pomiędzy equals() a hashCode()
  • String toString()
    • Implementacja domyślna toString()
    • Nadpisanie toString()
  • void notify(), notifyAll(), wait(.)
  • void finalize()
    • Wady metody finalize()

Rozdział 12. Typy generyczne

  • O co chodzi z błędami rzutowania?
  • Parametry generyczne
  • Wiele parametrów generycznych
  • Rozszerzanie typów generycznych
  • Zawężanie typu parametrów
    • Błędy kompilacji
  • Metody generyczne
  • Wildcards - generyczne argumenty w metodach
    • Ograniczenie typu parametru "z góry"
    • Przykład z kolekcją typu Car
    • Przykład z kolekcją typu Book
    • Ograniczenie typów parametrów "z dołu"

Rozdział 13. Który obiekt jest większy?

  • Interfejs Comparable
    • Porównywanie rosnąco
    • Porównywanie malejąco
    • Porównywanie na podstawie więcej niż jednej zmiennej
  • Zasady porównywania obiektów
  • Interfejs Comparator
  • Różnice pomiędzy Comparable a Comparator
    • Kiedy użyć Comparable?
    • Kiedy użyć Comparator?

Rozdział 14. Kolekcje

  • Interfejs Collection
  • Listy
    • ArrayList
    • LinkedList
    • Vector
    • Stack
    • ArrayDeque
  • Kolejki
    • PriorityQueue
  • Zbiory
    • HashSet
    • LinkedHashSet
    • TreeSet
  • Iteratory
  • Mapy
    • HashMap
    • LinkedHashMap
    • TreeMap
  • Operacje narzędziowe
    • Kolekcje niemodyfikowalne
    • Algorytmy

Rozdział 15. Paradygmat programowania funkcyjnego

  • Interfejs funkcyjny
    • Tworzenie interfejsu funkcyjnego
  • Wyrażenia lambda
  • Wbudowane interfejsy funkcyjne
    • Function
    • BiFunction
    • UnaryOperator
    • BinaryOperator
    • Predicate
    • Consumer
    • Supplier
    • Comparator
  • Referencje do metod
    • Referencja do metody statycznej
    • Referencja do metody instancyjnej obiektu
    • Referencja do metody instancyjnej typu
    • Referencja do konstruktora

Rozdział 16. Przetwarzanie strumieniowe

  • Interfejs Stream
  • Tworzenie strumienia
  • Operacje pośrednie i kończące
  • Stream API
    • Operacje pośrednie
    • Operacje kończące
  • Strumienie numeryczne
  • Współbieżne przetwarzanie strumieni
    • Przykład strumienia współbieżnego
    • Współbieżny dostęp do zasobu
  • Klasa Optional

Rozdział 17. I/O - wejście-wyjście programu

  • Reprezentacja pliku - klasa File
    • Ścieżka względna i bezwzględna
    • Określanie ścieżki w zależności od systemu operacyjnego
    • Operowanie na pliku
    • Metadane pliku
  • Strumienie wejścia-wyjścia
    • Strumienie bajtów
    • Strumienie znaków
  • RandomAccessFile
  • Serializacja
    • Wyłączenie z serializacji - słowo kluczowe transient
    • Serializacja obiektu zagnieżdżonego w obiekcie
  • Pakiet NIO
    • Bufory
    • Kanały
    • Selektory
  • Pakiet NIO 2
    • Path
    • Paths
    • Files

Rozdział 18. Kalendarz, data i czas

  • Jak w Javie reprezentowany jest czas
  • Kalendarz
    • Klasa Calendar
    • Klasa TimeZone
    • Klasa Locale
    • Klasa GregorianCalendar
  • Data i czas
    • Reprezentowanie daty do wersji 1.7 Javy
    • Reprezentowanie daty od wersji 1.8 Javy

Rozdział 19. Podstawy programowania współbieżnego

  • Proces a wątek
    • Wątek główny
  • Cykl życia wątku
    • NEW
    • RUNNABLE
    • BLOCKED, WAITING, TIMED_WAITING
    • TERMINATED
  • Tworzenie wątku
    • Klasa Thread
    • Interfejs Runnable
  • Synchronizacja wątków
    • Wyścig wątków
    • Atomowość operacji
    • Słowo kluczowe synchronized
    • Monitor
    • Słowo kluczowe volatile
  • Komunikacja między wątkami
  • Zakleszczenie wątków
    • Rozwiązanie problemu zakleszczenia wątków
  • Kolekcje bezpieczne w środowisku wielowątkowym

Rozdział 20. Podstawy JDBC

  • Komponenty
  • Nawiązywanie połączenia z bazą danych
    • Connection
    • DriverManager
    • DataSource
  • Zapytania
    • Statement
    • PreparedStatement
    • CallableStatement
    • Mapowanie ResultSet na kolekcję

Skorowidz

  • Назва: Java. Teoria w praktyce
  • Автор: Michał Suwała
  • ISBN: 978-83-289-1592-3, 9788328915923
  • Дата видання: 2024-06-18
  • Формат: Eлектронна книга
  • Ідентифікатор видання: javteo
  • Видавець: Helion