V prvním dílu překladu oficiálního Java tutoriálu se zaměříme na popis samotné Java technologie.
Obecně o Javě
Technologie Java se skládá z programovacího jazyku Java a platformy Java.
Programovací jazyk Java
Programovací jazyk Java je vysokoúrovňový jazyk, který může být charakterizován následujícími výrazy:
- Jednoduchý
- Nezávislý na architektuře
- Objektově orientovaný
- Přenosný
- Distribuovaný
- Vysoce výkonný
- Vícevláknový
- Robustní
- Dynamický
- Bezpečný
Každý z předcházejících výrazů je vysvětlen v The Java Language Environment, dokumentu, napsaném Jamsem Goslingem a Henrym McGiltnem.
V programovacím jazyce Java je všechen zdrojový kód prvně napsán v čistých textových souborech s příponou .java
. Tyto zdrojové kódy jsou kompilovány do souborů s příponou .class
javac kompilátorem. Soubor .class
neobsahuje kód speciálně pro váš procesor, místo toho obsahuje tzv. bytecode – což je kód určený pro Java Virtual Machine (Java VM).
Nástroj java poté spustí váš program jako instanci Java Virtual Machine.
Ukázka vývojového procesu.
Protože je Java VM dostupný pro mnoho platforem .class
soubory mohou být spuštěny na různých platformách, jako je Microsoft Windows, SolarisTM Operating System (Solaris OS), Linux nebo Mac OS. Některé virtuální stroje, jako je např. Java HotSpot Virtual Machine, připraví pro váš program další kroky pro zvýšení výkonosti. Toto zahrnuje například takové úkony, jako je hledání výkonostně slabých míst a jejich nahrazováním nativním kódem.
Přes Java VM je jedna aplikace připravena běžet na spoustě různých platforem.
Platforma Java
Platforma je hardwarové nebo softwarové vybavení, ve kterém program běží. Již jsme zmínili několik oblíbených platforem, jako je Microsoft Windows, Linux, Solaris OS a Mac OS. Většina platforem může být popsána jako kombinace operačního systému a jím spravovaného hardwaru. Platforma Java se liší od ostatních platforem tím, že se jedná pouze o softwarovou vrstvu ležící nad hardwarově orientovanou platformou.Java platforma má dvě komponenty:
- Java Virtual Machine
- Java Application Programming Interface (API)
Již jsme se seznámili s Java Virtual Machine; je to základ Java platformy a je portován na mnoho operačních systémů.
API je velká kolekce předem připravených částí kódů, které nabízí spoustu příjemných schopností. Je seskupena do knihoven příbuzných tříd a rozhraní; tyto knihovny jsou známy jako balíčky (packages). Příští kapitola (Co Java umí?) poukazuje na některé schopnosti Javy.
API a Java VM odstiňuje program od vespod ležícího hardwaru.
Jako na platformě nezávislé prostředí může být Java pomalejší než nativní kód. Nicméně, pokroky při vývoji kompilátorů a Java VM již přinesly značný nárůst výkonu.
Co Java umí?
V zásadě je vysokoúrovňový programovací jazyk Java výkonnou platformou. Každá plná implementace Javy vám nabízí:
- Vývojářské nástroje: Vývojářské nástroje vám nabízí vše, co budete potřebovat pro kompilování, spouštění, monitorování, ladění a dokumentování vašich aplikací. Pro vás, jako nového vývojáře, budou základní nástroje, které budete používat
javac
kompilátor,java
nástroj pro spouštění a dokumentační nástrojjavadoc
. - Application Programming Interface (API): API poskytuje základní funkcionalitu programovacímu jazyku Java. Jedná se o velmi širokou kolekci tříd, určených pro okamžité použití ve vašich aplikacích. Má veškeré potřebné komponenty od základních tříd přes podporu pro XML dokumenty až po přístup k databázím, vzdálené volání metod a mnohem více. Jádro API je velmi rozsáhlé, abyste se přesvědčili, podívejte se na dokumentaci k Java SE Development Kit 6 (JDKTM 6).
- Distribuční (Deployment) technologie: JDK software poskytuje standardní mechanismy, jako je Java Web Start software a Java Plug-In software pro distribuci vašich aplikací k uživatelům.
- Nástroje pro uživatelské rozhraní: The Swing a Java 2D toolkits umožňují vytvářet lehce komplexní a sofistikovaná grafická uživatelská rozhraní (GUI).
- Integrační knihovny: Integrační knihovny, jako je např. Java IDL API, JDBCTM API, Java Naming and Directory InterfaceTM („J.N.D.I.“) API, Java RMI a Java Remote Method Invocation over Internet Inter-ORB Protocol Technology (Java RMI-IIOP Technology), jež umožňují přístup k databázím a volání vzdálených objektů.
Jak změní Java můj život?
Nemůžeme vám slíbit slávu, štěstí a ani lepší práci, pokud se naučíte Javu. Co však můžeme, to je slíbit, že budete pravděpodobně vytvářet lepší programy s menší námahou, než kdekoli jinde. Věřím, že vám Java umožní:
- Rychle začít: Přestože je Java mocný objektově orientovaný jazyk, je velmi lehké se jej naučit, speciálně pro programátory, kteří se již setkali s C nebo C++.
- Psát méně kódu: Porovnáním měřítek programu (počtu tříd, počtu metod a spoustu dalších) můžeme říct, že programy napsané v Javě mohou být až 4× menší než stejné programy v C++.
- Psát lepší kód: Programovací jazyk Java vás učí lepším programovacím návykům a automatický správce paměti (tzv. garbage collection) vám pomáhá zabránit únikům paměti. Orientace jazyka na objekty, jeho JavaBeansTM komponentová architektura a jeho široké, lehce rozšiřitelné API vám pomáhá opakovaně využívat již jednou napsaného otestovaného kódu a tím předcházet chybám.
- Rychleji vyvíjet programy: Programovací jazyk Java je jednodušší než C++, a tak jsou programy v Javě vyvíjeny až 2× rychleji než v C++. Programy taktéž často potřebují méně řádek kódu.
- Zbavit se závislosti na platformě: Můžete zachovat vaše programy přenosné, pokud se vyvarujete používání nativního kódu.
- Napsat jednou, spustit všude: Protože aplikace napsané v Javě jsou kompilovány do strojově nezávislých byte kódů, mohou být spuštěny na libovolné Java platformě.
- Distribuovat software snadněji: S Java Web Start software budou moci uživatelé spustit váš software jedním kliknutím myši. Automatická kontrola verze při spuštění programu zaručí, že uživatelé budou mít vždy k dispozici poslední verzi vašeho programu. Jestliže je aktualizace dostupná, bude vždy jejich instalace aktualizována.
V příštím díle
Napsání vaší první Java aplikace „Hello World“ a její spuštění v integrovaném vývojovém prostředí NetBeans.