Literatura o programovacím jazyku Java


Literatura doporučená k přednášce je označena hvězdičkou *.

Stránka má v současné době tři oddíly:


Knihy o jazyce a základních knihovnách

  1. * M. Virius: Java 1. díl - jazyk. .Praha: ČVUT 2020. ISBN 978-80-01-06752-9.
    První díl dvoudílného skripta věnovaného programování v Javě, pokrývá programovací jazyk; výklad je založen na Javě 14. V první kapitole ukáže jednoduchý program, jeho překlad a spuštění a vysvětlí pojmy jako virtuální stroj, platforma Java atd. Ukáže také vytvoření a použití archivu jar a vlastní dokumentace. V dalších dvou kapitolách se čtenář narychlo seznámí s jazykem, aby mohl při dalším výkladu samostatně psát jednoduché příklady.
    V následujících kapitolách najdete podrobný výklad syntaxe a sémantiky jazyka Java. Postupně projdeme strukturu programu, balíky a moduly, základní datové typy, příkazy, výrazy a operátory, třídy a objekty, rozhraní, generické datové typy a jejich použití a práci s výjimkami. Poslední kapitola je věnována stručnému seznámení s integrovaným vývojovým prostředím Apache NetBeans.

  2. * M. Virius: Java 2. díl - Knihovny. .Praha: ČVUT 2020. ISBN 978-80-01-06753-6.
    Druhý díl dvoudílného skripta věnovaného programování v Javě, pokrývá vybrané knihovny; výklad je opět založen na JDK 14.

  3. * M. Virius: Cvičení k programování v Javě. . ČVUT 2015. ISBN 978-80-01-04240-3.
    Na příkladu vývoje programu pro kreslení únikových fraktálů ukazuje použití řady technik v Javě.

  4. M. Virius: Programování v Javě. ČVUT 2010.
    Toto skriptum vzniklo v době, kdy byla novinkou Java 6; to znamená, že v něm nenajdete informace o novinkách pozdějších verzí jazyka (především o modulech) a knihoven (o Javě FX, knihovně datovodů std.) a na druhé straně tam najdete informace o apletech, servletech a jiných technologiích, které už zastaraly.

  5. B. Eckel: Myslíme v jazyku Java. Knihovna programátora. Grada Publishing 2001.
  6. *B. Eckel: Myslíme v jazyku Java. Knihovna zkušeného programátora. Grada Publishing 2001.
    Nedejte se zmást názvem, oba díly nutno brát pohromadě -- jde o jednu knihu, z technických důvodů rozdělenou pro české vydání do dvou dílů. Je to překlad slavné Eckelovy knihy Thinking in Java (Prentice Hall 2000, ISBN 0-13-027363-5), kterou lze získat v angličtině také na http://www.bruceeckel.com.
    Pokrývá jazyk Java, nejdůležitější knihovny a stručně uvádí do běžných i pokročilejších technologií (reflexe, tvorba distribuovaných aplikací, tvorba databázových aplikací atd.) Neučí programování, pouze na nejjednodušších možných příkladech (a pokud možno naprosto nepoužitelných, aby si autor chránil "duševní vlastnictví") ukazuje použití různých konstrukcí jazyka Java. Pokud umíte programovat v jiném jazyce, poslouží skvěle.

  7. J. Bloch: Java efektivně. Grada Publishing 2002. ISBN 80-247-0416-1.
    Kniha je zjevně inspirována knihami Scotta Meyerse Effective C++, More Effective C++ atd. V 57 krátkých kapitolkách rozebárá různé problémy, na něž může programátor užívající Javu narazit: Jak zajistit, aby od určité třídy existovala nejvýše jedna instance, jak se vyhnout zbytečnému vytváření objektů, jak efektivně využívat dědičnost a mnohé další. Často jde o aplikaci známých návrhových vzorů. Vedle toho ukazuje pasti, do nichž může nezkušený, ale i zkušený programátor spadnout. Velice dobře napsaná, hůře přeložená kniha. Lze jen doporučit.

  8. P. Herout: Učebnice jazyka Java. Kopp, České Budějovice 2000.
    Není to učebnice Javy v pravém smyslu, je to spíše podrobný a metodicky uspořádaný popis JDK vycházející z vlastních zkušeností. Obsahuje popis příkazů a dalších základních konstrukcí jazyka, nástrojů pro objektové programování včetně vnitřních tříd, pro vstupy a výstupy, pro vícevláknové programování atd. Neobsahuje tvorbu "okenních" aplikací, apletů, servletů, databázových aplikací atd. Pokud umíte trochu programovat (ne nutně v Javě) a znáte základy OOP, můžete se podle této knihy naučit programovat v Javě. Velice dobrá kniha.

  9. P. Herout: Java -- grafické uživatelské prostředí a čeština. Kopp, České Budějovice 2001
    Navazuje na předchozí knihu. Podrobně popisuje tvorbu grafického uživatelského rozhraní programů a zpracování událostí v knihovně AWT (tj. v JDK 1.1). Nepopisuje knihovnu Swing. I tak opět velice užitačná publikace.

  10. P. Herout: Java -- bohatství knihoven. Kopp, České Budějovice 2003
    Navazuje na předchozí knihy. Z hlediska typického (a někdy i méně typického) využití v aplikacích popisuje knihovnu kolekcí, třídy pro práci s datem a časem, práci s extrémně velkými čísly, kompresi dat a další témata. Jako vetšina publikací od tohoto autora vychází zjevně z vlastní zkušenosti a je napsána velice srozumitelně. Užitečná publikace.

  11. s M. Virius: Java pro zelenáče. Neocortex, Praha 2001. 240 stran.
    Učebnice Javy pro naprosté začátečníky. Vychází z JDK 1.3. Začíná od základních pojmů, probere základní konstrukce jazyka včetně objektového programování. Obsahuje také úvod do tvorby grafického uživatelského rozhraní pomocí knihovny Swing. Výklad doprovázejí příklady, a to i poměrně rozsáhlé.
    Kniha nehovoří o vnitřních třídách, o vícevláknovém programování a o dalších pokročilejších tématech.
    Na počátku léta 2005 vyšlo druhé vydání aktualizované pro JDK 5.

  12. Ivor Horton: Beginning Java 2 SDK 1.4 Edition. Wrox Press Ltd, Birmingham 2002. 1200 stran. ISBN 1-861005-69-5, cena 49.99$. Anglicky.
    (Česky: Java 5. Neocortex 2005. ISBN 80-86330-12-5. 1443 stran.)
    Dobře napsaná kniha, která krok po kroku probírá všechny konstrukce jazyka Java a nejběžnějších knihoven, včetně tisku a práce s XML. Nehovoří o RMI, programování distribuovaných aplikací pomocí standardu CORBA, EJB, ani o databázích.
    Český překlad vyšel poněkud pozdě, je ale doplněn o kapitolu o podpoře národního prostředí v JDK 1.4 a 1.5 (a to nejen se zřetelem k českému prostředí) a o kapitolu o novinkách JDK 1.5. [2005]
    Kdysi se mi ta kniha dost líbila. Pak jsem ale zjistil, že ne všechny informace v ní jsou spolehlivé. (Například tvrzení, že démonové vlákno zaniká při zániku nadřízeného vlákna není pravdivé.)[leden 2010]

  13. D. Štrupl: Java pro každého. Plus, Praha 1997
    Stručný úvod do JDK 1.0 včetně událostí a grafického uživatelského rozhraní (AWT). Výklad je bohužel poměrně neuspořádaný.

  14. F. Hawlitzek: Java 2 -- příručka programátora. Grada Publishing 2002.
    Obsahuje stručný přehled syntaxe jazyka a základních knihoven -- z rychlíku pokrývá vstupy a výstupy, práci s databázemi, programování pro TCP/IP, programování servletů a práci s grafickým uživatelským rozhraním (pomocí AWT i knihovny Swing). Hovoří i o programování apletů, kontejnerech a některých dalších tématech. Nepouští se do pokročillejších věcí, jako je RMI, CORBA, přirozené metody apod.
    Docela dobré pro orientaci o základních možnostech.

  15. K. Arnold, J. Gosling, D. Holmes: The Java 2 Programming language, 3rd Edition. Addison-Wesley 2000. ISBN 0-201-70433-1.
    Jedna z nejznámějších a nejlepších knih o Javě. Podrobně pokrývá především základní konstrukce a knihovny.

  16. J. Gosling, B. Joy, G. Steele, G. Bracha: The Java Language Specification, 2nd Edition. Addison-Wesley 2000. ISBN 0-201-31008-2.
    Základní publikace o jazyku Java, obsahující specifikaci jazyka.

  17. T. Pitner: Java (začínáme programovat). Grada Publishing 2002. ISBN 80-247-0295-9.
    Učebnice vycházející od základů. Vedle jazyka a běžných knihovních tříd probírá vstupy a výstupy, grafické uživatelské rozhraní, třídu System a trochu i podporu národního prostředí.

  18. R. Pecinovský: Myslíme objektově v jazyku Java 5.0. Grada Publishing, Praha 2004. ISBN 80-247-0941-4. 599 stran.
    Velice dobře napsaná kniha určená naprostým začátečníkům v Javě. Využívá prostředí BlueJ a předem připravenou sadu projektů a od počátku učí myslet objektově. Čtenář se nejprrve hraje s objekty, pak je sám programuje a teprve poté se dostane ke klasickým konstrukcím, jako jsou cykly nebo rozhodování. V průběhu jsou nejprve doplňovány předem připravené příklady a pak teprve jsou vyvíjeny nové. Postup výuky je vyzkoušen na starších dětech i na dospělých v kurzech pro profesionály.

  19. C.S. Horstmann, G. Cornell: Core Java 2. Vol. 1 -- Fundamentals. 7th edition. (J2SE 5.0) Sun Microsystems Press -- Prentice Hall, 2004. ISBN 0-13-148202-5. 752 stran.
    Dobře udělaná kniha pro čtenáře, kteří již znají nějaký programovací jazyk. Probírá Javu 5 od základů, zabíhá do technických podrobností a upozorňuje i na možná nedorozumění. Obsahuje i řadu poznámek pro čtenáře, kteří znají C++. U některých konstrukcí najdeme upozornění na rozdíly mezi různými verzemi Javy. Obsahuje obrovské množství informací.

  20. *R. Pecinovský: Java 5.0. Novinky jazyka a upgrade aplikací.Computer Press (CP Books) 2005. ISBN 80-251-0615-2. 152 stran, doporučená cena 149 Kč, 219 Sk. Volně ke stažení na autorových stránkách.
    Kniha předpokládá, že znáte Javu (alespoň částečně), a probírá novinky, které přineslo JDK 5 -- tedy generické (parametrizované) typy a metody, výčtové typy, statické importy, rozšíření příkazu for, metody s proměnným počtem parametrů a další. Kátce se zmiňuje i o některých rozšířeních knihoven.
    Dobře napsaná kniha, velice užitečné čtení.

  21. *D. Lea: Concurrent Programming in Java, Second Edition. Design Principles and Patterns.Sun Microsystems, Addison-Wesley 1999. ISBN 0-201-31009-0. 411 stran, cena 39,99 $.
    Jak dobře vícevláknově programovat v Javě? V této knize se ve 4 kapitolách -- spíše částech -- dozvíme od jednopho z autorů Javy, jak na to. Autor začíná apletem s jednoduchou animací, na níž vysvětluje základy, a pak se postupně dostává do hloubky, k závislostem stavů, synchronizaci, komunikaci mezi vlákny, transakcím a mnoha dalším problémům. Je to velice náročné, ale opravdu užitečné čtení. [srpen 2006]

  22. *B. Spell: Java -- Programujeme profesionálně. Computer Press 2002. ISBN 80-7226-667-5. 1020 stran, doporučená cena 890 Kč / 1335 Sk.
    Kniha z edice Programmer to Programmer nakladatelství Wrox. Je určena lidem, kteří Javu už znají, ale chtějí v ní jít dále. První tři kapitoly se zabývají fungováním virtuálního stroje JVM, technikami efektivního návrhu tříd a práci s vlákny. V dalších kapitolách autor podrobně probírá vybrané komponenty pro tvorbu grafického uživatelského rozhraní a obsluze událostí a implementaci standardních funkcí tohoto rozhraní (funkce vyjmout a vložit, tisk a jiné). Seznámíme se tu i s vytvářením vlastních komponent. Další část knihy se zabývá vytvářením distribuovaných aplikací, práce s databázemi pomocí JDBC a používání XML. V poslední části se autor věnuje nasazování aplikací do provozu, zabezpečením, optimalizací výkonu atd.
    Je to poměrně náročné čtení, ale velice užitečné, pokud míníte Javu opravdu používat. [září 2006]

Knihy o podnikových aplikacích

  1. Marty Hall: Core Java Servlets and JavaServer Pages. Prentice Hall 1999. Český překlad Java: Servlety a stránky JSP vydal Neocortex, Praha 2001.
    Kniha vyčerpávajícím způsobem pojednává o tvorbe servletů a JSP. [To platilo v době vydání. Od té doby přibyly nové specifikace, servery vyžadují webové archivy atd. I tak ale to je dobrá kniha. (poznámka z dubna 2010)] V dodatcích vysvětluje základy JDBC (tvorby databázových aplikací v Javě), shrnuje tvorbu formulářů v HTML atd. Předpokládá znalost jazyka Java a jeho základních knihoven, nepředpokládá ale žádné vědomosti o servletech, protokolu HTTP ani o tvorbě aplikací pro WWW server. Výklad doprovázejí příklady, které lze prakticky ihned použít k tvorbě skutečných aplikací. Velice dobrá kniha.

  2. G. Bollinger, B. Natarajan: JSP -- Java Server Pages. Grada Publishing, Praha 2003. ISBN 80-247-0340-8. 418 stran.
    Kniha je věnována pouze technologii JSP. Nejprve nás seznámí se základy tvorby JSP a s potřebným minimem o protokolu HTTP, pak nás naučí sestavovat skutečné webové aplikace založené na JSP. Pochopitelně hovoří i o používání databází. V dodatcích jsou mj. odpovědi an testové otázky, postup vytvoření databáze v MySQL a přehled novinek specifikace JSP 1.2. Dá se použít, ale následující podobně zaměřená kniha od nakl. Computer Press se mi líbila víc (možná i proto, že mi připadala lépe přeložená).

  3. B. Burd: JSP -- JavaServer Pages. Computer Press, Praha 2003. ISBN 80-7226-8014-X. 381 stran.
    Výklad je rozložen ho tří částí. V první se hovoří o JSP, tj. o skriptovacích elementech, implicitních objektech, direktivách atd. nakonec se napíše poměrně rozsáhlý příklad (jednoduchý webový portál). Ve druhé části se hovoří o použití JavaBeans ve stránkách JSP; i zde je na konec uveden rozsáhlejší příklad (síťové piškvorky, kde ovšem počítač pouze zprostředkovává komunikaci a poskytuje hrací plochu). Ve třetí části se hovoří o použití databází a ve čtvrté o instalaci a údržbě webové aplikace a o vytváření vlastních elementů JSP. V dodatku se mj. seznámíme se základu protokolu HTTP.

  4. G. Reese: Database Programming with JDBC and Java. O'Reilly 1997. ISBN 1-56592-270-0.
    V této knize najdeme informace o dotazovacím jazyku SQL, o používání dotazů, o uložených procedurách atd. Dále ukazuje vzory pro rozdělení různých funkcí aplikace, a to vše na bázi Javy (JDK 1.1).

  5. S. Bodoff & all: The J2EE Tutorial. Addison-Wesley 2002. ISBN 0-202-79168-4. 490 stran, cena $49.99. Anglicky.
    V této knize najdete návody, jak psát komponenty Enterprise JavaBeans (EJB), servlety, JSP, jak používat Java Message Service (JMS), Java Naming and Direktory Service (JNDS), jak pracovat s XML, seznámíte se s J2EE Connector Architecture, JavaMail a JDBC. Kniha ukazuje, co je třeba dělat, nezdržuje se ale vysvětlováním principů. Jako rychlonávod je to dobré, pro porozumění je ale třeba si najít k jednotlivým tématům podrobnější literaturu.

Ostatní

  1. D. Štrupl -- M. Virius: JBuilder verze 3. Grada Publishing 1999.
    I když jde o knihu věnovanou převážně JBuilderu, obsahuje také rychlokurz jazyka Java (JDK 1.2, někdy JDK 1.1, knihovna Swing). Najdeme tu i úvod do tvorby vícevláknových aplikací a do tvorby komponent JavaBeans. Nehovoří o tvorbě distribuovaných aplikací a o dalších pokročilých tématech.

  2. S. R. Davis: Visual J++. Grada Publishing 1998.
    Docela pěkně napsaný úvod do Javy a vývojového prostředí Visual J++ 1.1. Založeno na JDK 1.1. Zabývá se pouze konzolovými aplikacemi a aplety, nikoli plnohodnotnými graficky orientovanými aplikacemi. Nerozebírá pokročilejší témata.

  3. P. J. Perry: Java -- tvorba dokonalých WWW stránek. Grada Publishing 1996. ISBN 80-7169-415-0.
    Probírá Javu, jak vypadala ve svých počátcích (JDK 1.0). To znamená, že zde najdeme poučení o jazyku, jeho použití pro tvorbu apletů a základy značkovacího jazyka HTML. Dnes už nemá valný význam tuto knihu používat.

  4. D. Brackeen: Developing Games in Java. New Riders 2003. ISBN 1-5927-3005-1. 972 stran.
    Určeno programátorům, kteří znají Javu. I když by se podle názvu mohlo zdát, že jde o jednoúčelově zaměřženou publikaci, ve skutečnosti můe nejspíš posloužit i zájemcům z jiných oblastí programování. Probírá techniky celoobrazovkové animace (včetně vícevláknového programování), různé postupy z oblasti umělé inteligence, použití zvukových efektů, různé optimalizační triky atd.

  5. M. Hynar: Java -- nástroje. Neocortex, Praha 2004. ISBN 80-86330-16-8. 325 stran.
    Něco takového jsem na trhu docela postrádal. To je kniha, která popisuje několik užitečných nástrojů, které pomáhají vývojáři pracujícímu v Javě (a samozřejmě ukazuje, jak se používají). Začíná u dokumentačního nástroje javadoc, pak projde ladicí nástroje jdb a JSwat, nástroj pro správu projektů Ant, testovací modul JUnit, program pro kontrolu běžných programátorských prohřešků proti dobrému stylu Pmd, nástroj JMeter pro zátěžové testování aplikací a nástroj Maven pro správu softwarového projektu. Poznamenejme, že jde o nástroje, které jsou součástí JDK nebo jsou volně k dispozici včetně zdrojového kódu (open source).


Moje domovská stránka    Přednášky a semináře    Ostatní literatura