Java. Teoria w praktyce - ebook
Java. Teoria w praktyce - ebook
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!
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-289-1592-3 |
Rozmiar pliku: | 5,1 MB |