Učebnice jazyka Java

Datum vydání: 2011-03-01 11:35:22; aktualizováno: 2019-11-06 14:48:33

Ke knize jsou zdrojové soubory!

Kniha Učebnice jazyka Java nám byla pro začátky doporučena učitelem Javy na ČVUT, a byl to opravdu dobrý výběr. Pavel Herout vysvětluje Javu na jednoduchých příkladech, takže by měla být srozumitelná i opravdovým začátečníkům. Cvičení v knize už tak jednoduchá nejsou :-). Tuto knihu DOPORUČUJI!

Pokud máte problémy a nevíte, jak Javu spustit, tak odpověď byste měli nalézt v mých poznámkách u knihy Java pro zelenáče.

Některé příklady z knihy

Pavel Herout: Učebnice jazyka Java:

Obsah knihy:

  1. Předmluva k aktuálnímu vydání
  2. Úvod k prvnímu vydání z roku 2000
  3. Základní pojmy
  4. Základní dovednosti v Javě
  5. Terminálový vstup a výstup
  6. Řídící struktury
  7. Metody
  8. Pole
  9. Třídy a objekty - základní dovednosti
  10. Řetězce a znaky
  11. Třídy a objekty - pokračování
  12. Dědičnost
  13. Balíky
  14. Rozhraní (interface)
  15. Polymorfizmus
  16. Vnořené třídy
  17. Výjimky
  18. Adresáře a soubory
  19. Čtení ze vstupů a výpis na výstupy
  20. Systémové akce
  21. Vlákna
  22. Literatura
  23. Rejstřík

Zde je podrobný obsah:

  1. Předmluva k aktuálnímu vydání
  2. Úvod k prvnímu vydání z roku 2000
    • Typografické a syntaktické konvence
  3. Základní pojmy
    • Trocha historie nikoho nezabije
    • Způsob zpracování programu v Javě
    • Různé typy programů
    • Vývojové nástroje a jejich verze
      • Vývoj a verze JDK
    • Používané pojmy
      • Java Core API
      • Java Platforma
      • Technologie hot-spot a JIT kompilátor
    • Co byste měli vědět, než skutečně začnete programovat
      • Jak přeložit a spustit program
      • Běžné problémy
  4. Základní dovednosti v Javě
    • Komentáře
    • Způsob zápisu identifikátorů
    • Anotace
    • Hlavní program
    • Základní datové typy
      • Celočíselné typy a jejich konstanty
      • Znakový typ a jeho konstanty
      • Řetězcové konstanty (literály)
      • Logický typ a jeho konstanty
      • Reálné datové typy a jejich konstanty
    • Deklarace proměnných
      • Deklarace proměnných s konstantní hodnotou
      • Deklarace výčtového typu
    • Operátor přiřazení
    • Operátor přetypování
      • Rozšiřující konverze
      • Zužující konverze
      • Rozšiřující konverze se ztrátou přesnosti
    • Aritmetické výrazy
      • Unární operátory
      • Binární operátory
      • Přiřazovací operátory
    • Relační operátory
      • Zkrácené vyhodnocování logických součtů a součinů
      • Úplné vyhodnocování logických součtů a součinů
    • Bitové operace
      • Bitový součin
      • Bitový součet
      • Negace bit po bitu
      • Bitový exkluzivní součet
      • Operace bitového posunu doleva
      • Operace bitového posunu doprava znaménkově
      • Operace bitového posunu doprava neznaménkově
    • Priority vyhodnocování operátorů
  5. Terminálový vstup a výstup
    • Formátovaný výstupu pomocí System.out.print()
    • Komplexní řešení výstupu
      • Výpis celého čísla v desítkové soustavě
      • Výpis celého čísla v jiných soustavách
      • Výpis znaku
      • Výpis reálného čísla
      • Výpis řetězce
    • Formátovaný vstup
      • Základní způsoby čtení
    • Problém vyprázdnění vstupu
  6. Řídící struktury
    • Příkaz if a příkaz if-else
      • Neúplná podmínka
      • Úplná podmínka
    • Podmíněný výraz - ternární operátor
    • Návěští
    • Příkazy break a continue
    • Iterační příkazy - cykly
      • Příkaz while
      • Příkaz do-while
      • Příkaz for
    • Příkaz switch
    • Příkaz return
  7. Metody
    • Deklarace metody
    • Metoda bez parametrů
    • Metoda bez návratového typu - procedura
      • Procedura bez parametrů
    • Metoda s více parametry různých typů
    • Rekurzivní metody
    • Konverze skutečných parametrů a návratové hodnoty metody
    • Způsoby předávání skutečných parametrů metod
    • Přetížené metody
    • Místa deklarací metody
    • Proměnné z pohledu místa deklarace
      • Nelokální proměnné - "globální" proměnné
      • Proměnné metod - lokální proměnné
      • Zastínění nelokálních proměnných lokálními
  8. Pole
    • Pojem referenční datový dyp
    • Deklarace pole
    • Délka pole
    • Inicializované pole
    • Speciality při práci s poli
      • Průchod všemi prvky pole
      • Výpis celého pole najednou
      • Seřazení pole
    • Dvourozměrné pole
      • Inicializace dvourozměrného pole
    • Trojrozměrná pole
    • Více rozměrů v jednorozměrném poli
  9. Třídy a objekty - základní dovednosti
    • Deklarace třídy
    • Vytvoření objektu
    • Přímý přístup k datům objektu
    • Práce s metodami
    • Konstruktory
      • Implicitní konstuktor
    • Využití this pro přístup k proměnným
    • Přetížení metod a konstuktorů
    • Využití this pro přístup ke konstruktoru
    • Volání metod jinými metodami téže třídy nebo konstuktorem
    • Použití proměnné třídy v objektech
    • Použití statických metod v objektech
      • Použití statických metod ze třídy z Java Core API
      • Použití statické metody z téže třídy
    • Inicializace proměnných třídy
    • Rušení objektů
    • Ukončení práce s objekty
  10. Řetězce a znaky
    • Vytvoření řetězce
      • Inicializované pole řetězců
    • Pole s celými řetězci
      • Porovnávání
      • Převody na malá či velká písmena
      • Spojení řetězců
      • Náhrada všech znaků v řetězci
    • Práce s částí řetězce
      • Získání části řetězce
      • Práce se začátkem a koncem řetězce
      • Oříznutí bílých znaků na okrajích
    • Práce s jednotlivými znaky řetězce
      • Získání znaku
      • Hledání znaku
    • Konverze základních datových typů na řetězec
      • Tisk do řetězce
    • Konverze řetězce na základní datové typy
    • Vyvolání více metod jedním příkazem
    • Dělení řetězce na části pomocí split()
      • Základní použití
      • Použití regulárních výrazů
    • Metoda toStrint()
    • Třída StringBuffer
      • Vytvoření instance
      • Délka řetězce
      • Změny celého řetězce
      • Změny části řetězce
      • Konverze na String
    • Třída Character - práce s jednotlivými znaky
      • Rozpoznávání druhu znaků
      • Změna velikosti písmene
      • Převod jednotlivých znaků na čísla
  11. Třídy a objekty - pokračování
    • Modifikátory deklarace třídy
      • Třídy s modifikátorem public
    • Kompozice objektů
    • Autorizovaný přístup k datům
    • Pole objektů
      • Pole objektů obalovacích tříd a automatické převody
    • Předávání skutečných parametrů metodám
      • Předávání primitivních datových typů
      • Předávání objektů
      • Předávání polí jako skutečných parametrů metodám
      • Předávání vícerozměrných polí metodám
  12. Dědičnost
    • Úvodní poznámky
    • Realizace dědičnosti
    • Problémy s neimplicitními konstuktory rodičovské třídy
    • Nechceme, aby bylo možné metodu překrýt - abstraktní metody a třídy
    • Nechceme, aby bylo možné metodu zdědit - finální třídy
    • Překrytí proměnné
    • Základem je Object
      • Metoda clone()
      • Metoda equals()
      • Metoda hashCode()
      • Metoda getClass()
  13. Balíky
    • Import balíků
      • Statický import balíků
    • Vytvoření balíků
      • Celosvětově platná konvence pro pojmenování
    • Přístupová práva
      • Specifikátor private
      • Specifikátor protected
      • Specifikátor public
      • Specifikátor neuveden (je "přátelský")
    • Při dědění nelze zeslabit přístupová práva
  14. Rozhraní (interface)
    • Konstrukce rozhraní
    • Použití jednoho rozhraní
    • Použití rozhraní jako typu referenční proměnné
    • Implementace více rozhraní jednou třídou
    • Instance rozhraní může využívat jen metody rozhraní
    • Implementované rozhraní se dědí beze změny
    • Dědění třídy a současná implementace rozraní
    • Dědění rozhraní a konstanty rozhraní
    • Využití operátoru instanceof
  15. Polymorfizmus
    • Využití abstraktní třídy
    • Použití neabstraktních tříd
    • Použití rozhraní
  16. Vnořené třídy
    • Vnitřní třídy
      • Implementace rozhraní pomocí metody využívající vnitřní třídu
      • Implementace rozhraní pomocí metody využívající vnitřní anonymní vnitřní třidu
      • Proměnná typu rozhraní využívající anonymní vnitřní třídu
      • Vnitřní třída je vytvořená děděním
  17. Výjimky
    • Možné druhy výjimek
      • Třída Error
      • Třída RuntimeException
      • Třída Exception
    • Způsoby ošetření výjimky
      • Předání výjimky výše - deklarace výjimky
      • Kompletní ošetření výjimky
      • Ošetření výjimky a následné předání výše
      • Naprosto nejhorší reakce na výjimku
      • Rozumná reakce na výjimku
      • Výpis výjimky do okénka
    • Seskupování výjimek
      • Postupná selekce výjimek
    • Vyvolání výjimky
    • Vytvoření a použití vlastní výjimky
    • Konstrukce try-catch-finally
      • Konstrukce try-finally
  18. Adresáře a soubory
    • Nezávislost na operačním systému
    • Vytvoření instance třídy File
    • Vytvoření souboru nebo adresáře
    • Práce se souborem nebo adresářem
    • Výpis adresáře
      • Selektivní výpis adresáře
  19. Čtení ze vstupů a výpis na výstupy
    • Proudy znaků a proudy bajtů
    • Dva různé typy tříd zděděných od základních tříd
      • Třídy pro práci se zařízeními
      • Třídy vlastností (filtrů)
    • Čtení ze souboru a zápis do souboru
      • Vstupy a výstupy znaků
      • Vstupy a výstupy bajtů
      • Další dovednosti se soubory
      • Bezpečné zavírání souborů a řešení výjimek
    • Třídy vlastností
      • Vlastnost: bufferování
      • Vlastnost: čtení po řádcích
      • Vlastnost: výběrové čtení po řádcích
      • Vlastnost: vrácení přečteného znaku
      • Vlastnost: formátování výstupu
      • Vlastnost: formátování výstupu s řádkovým bufferováním
      • Formátovaný vstup pomocí Scanner
      • Formátovaný vstup pomocí FileReader
      • Vlastnost: neformátovaný vstup a výstup základních datových typů
      • Seskupování vlastností
    • Vstup a výstup do paměti
    • Vstup a výstup do roury
    • Soubory s přímým přístupem
  20. Systémové akce
    • Parametry příkazové řádky
    • Systémové atributy a zdroje
      • Standardní vstupní a výstupní proudy
      • Systémové vlastnosti
    • Užitečné metody ze třídy System
      • Informace o čase
      • Spuštění garbage collectoru
      • Zjištění velikosti dostupné paměti
      • Spuštění finalizeru
      • Násilné ukončení programu
  21. Vlákna
    • Třída Thread
    • Spolupráce dvou vláken
      • Vlákna se pravidelně střídají
      • Vlákna se střídají nepravidelně
    • Stavy vlákna a plánovací algoritmus
      • Stavy vlákna
      • Priority vlákna
      • Sdílení času
      • Praktické ověření plánování a priorit
    • Rozhraní Runnable
    • Čekání na vstup či výstup
    • Synchronizace vláken
      • Vlákno čeká trpělivě na konec jiného vlákna
      • Vlákno čeká netrpělivě na konec jiného vlákna
      • Vlákno ukončí předčasně jiné vlákno
      • Vlákno je násilně probuzeno
      • Kritické sekce - synchronizované metody
      • Kritické sekce - synchronizované bloky
      • Synchronizace časové posloupnosti vláken
    • Další informace o vláknech
      • Problematika hladovění a uváznutí
      • Skupiny vláken
      • Vlákna typu démon
  22. Literatura
  23. Rejstřík

Též by měla být dobrá pro začátečníky kniha Java 7 - výukový kurz.