Java
Duke – maskot jazyka Java
Java je
objektově orientovaný programovací jazyk, který vyvinula firma Sun
Microsystems a představila 23. května 1995.
Java je jedním z
nejpoužívanějších programovacích jazyků na světě. Díky své
přenositelnosti je používán pro programy, které mají pracovat na různých
systémech počínaje čipovými kartami (platforma JavaCard), přes mobilní telefony a různá zabudovaná
zařízení (platforma Java ME), aplikace pro
desktopové počítače (platforma Java SE) až
po rozsáhlé distribuované systémy pracující na řadě spolupracujících
počítačů rozprostřené po celém světě (platforma Java EE). Tyto technologie se jako celek nazývají platforma
Java. Dne 8. května 2007 Sun uvolnil zdrojové
kódy Javy (cca 2,5 miliónů řádků kódu) a Java bude dále vyvíjena jako open source.
Existuje
několik teorií o původu jména tohoto jazyka, jedna z nich mluví o inspiraci
u slangového označení kávy.
Základní vlastnosti
- jednoduchý – jeho syntaxe je zjednodušenou (a drobně upravenou)
verzí syntaxe jazyka C a C++. Odpadla většina konstrukcí, které
způsobovaly programátorům problémy a na druhou stranu přibyla řada
užitečných rozšíření.
- objektově orientovaný – s výjimkou
osmi primitivních datových typů jsou všechny ostatní datové typy
objektové.
- distribuovaný – je navržen pro podporu aplikací v
síti (podporuje různé úrovně síťového spojení, práce se vzdálenými
soubory, umožňuje vytvářet distribuované klientské aplikace a
servery).
- interpretovaný – místo skutečného strojového kódu se
vytváří pouze tzv. mezikód (bajtkód). Tento formát je nezávislý na
architektuře počítače nebo zařízení. Program pak může pracovat na
libovolném počítači nebo zařízení, který má k dispozici interpret Javy,
tzv. virtuální stroj Javy - Java Virtual
Machine (JVM).
V pozdějších verzích Javy nebyl mezikód přímo
interpretován, ale před prvním svým provedením dynamicky zkompilován do
strojového kódu daného počítače (tzv. just in time compilation - JIT).
Tato vlastnost zásadním způsobem zrychlila provádění programů v Javě ale
výrazně zpomalila start programů.
V současnosti se převážně
používají technologie zvané HotSpot compiler, které mezikód zpočátku
interpretují a na základě statistik získaných z této interpretace později
provedou překlad často používaných částí do strojového kódu včetně
dalších dynamických optimalizací (jako je např. inlining krátkých metod
atp.). - robustní – je určen pro psaní vysoce spolehlivého softwaru
– z tohoto důvodu neumožňuje některé programátorské konstrukce, které
bývají častou příčinou chyb (např. správa paměti, příkaz goto,
používání ukazatelů). Používá tzv. silnou typovou kontrolu – veškeré
používané proměnné musí mít definovaný svůj datový typ.
- generační správa paměti – správa paměti je realizována pomocí
automatického Garbage collectoru který automaticky vyhledává již
nepoužívané části paměti a uvolňuje je pro další použití. To bylo v
prvních verzích opět příčinou pomalejšího běhu programů. V posledních
verzích běhových prostředí je díky novým algoritmům pro garbage
collection a tzv. generační správě paměti (paměť je rozdělena na více
částí, v každé se používá jiný algoritmus pro garbage collection a
objekty jsou mezi těmito částmi přesunovány podle délky svého života)
tento problém ze značné části eliminován.
- bezpečný – má
vlastnosti, které chrání počítač v síťovém prostředí, na kterém je
program zpracováván, před nebezpečnými operacemi nebo napadením vlastního
operačního systému nepřátelským kódem.
- nezávislý na
architektuře – vytvořená aplikace běží na libovolném operačním
systému nebo libovolné architektuře. Ke spuštění programu je potřeba
pouze to, aby byl na dané platformě instalován správný virtuální stroj.
Podle konkrétní platformy se může přizpůsobit vzhled a chování
aplikace.
- přenositelný – vedle zmíněné nezávislosti na
architektuře je jazyk nezávislý i co se týká vlastností základních
datových typů (je například explicitně určena vlastnost a velikost
každého z primitivních datových typů). Přenositelností se však myslí
pouze přenášení v rámci jedné platformy Javy (např. J2SE). Při
přenášení mezi platformami Javy je třeba dát pozor na to, že platforma
určená pro jednodušší zařízení nemusí podporovat všechny funkce
dostupné na platformě pro složitější zařízení a kromě toho může
definovat některé vlastní třídy doplňující nějakou speciální
funkčnost nebo nahrazující třídy vyšší platformy, které jsou pro
nižší platformu příliš komplikované.
- výkonný – přestože se
jedná o jazyk interpretovaný, není ztráta výkonu významná, neboť
překladače pracují v režimu „právě včas“ a do strojového kódu se
překládá jen ten kód, který je opravdu zapotřebí.
- víceúlohový
– podporuje zpracování vícevláknových aplikací
- dynamický –
Java byla navržena pro nasazení ve
vyvíjejícím se prostředí. Knihovna může být dynamicky za chodu
rozšiřována o nové třídy a funkce, a to jak z externích zdrojů, tak
vlastním programem.
- elegantní – velice pěkně se v něm pracuje,
je snadno čitelný (např. i pro publikaci algoritmů), přímo vyžaduje
ošetření výjimek a typovou kontrolu.
Nevýhody
Javy
Proti programovacím jazykům, které provádějí tzv. statickou kompilaci
(např. C++), je start programů psaných v Javě pomalejší, protože
prostředí musí program nejprve přeložit a potom teprve spustit. Je však
možnost využít mechanismů JIT a HotSpot, kdy se často prováděné nebo
neefektivní části kódu přeloží do strojového kódu a program se
zrychlí. Na zrychlení se také podílí nové přístupy ke správě paměti,
viz výše popsaná generační správa paměti.
Další nevýhodou
projevující se hlavně u jednodušších programů je větší paměťová
náročnost při běhu způsobená nutností mít v paměti celé běhové
prostředí.
V návrhu Javy je vidět snaha znemožnit programátorovi
psát problematické konstrukce známé především z jazyka C. Součástí
jazyka proto nejsou například bezznaménkové číselné datové typy,
příkaz goto nebo preprocesor, ačkoli se v odůvodněných příkladech jedná
o užitečné nástroje a ani rozšířené možnosti Javy je plně
nenahrazují.
Ukázka kódu
Tradiční program „Hello world“ vypadá takto:
public class
HelloWorld { public static void main(String[] args) { System.out.println("Hello
world!"); } } Netradiční verze „Hello world“ s malou ukázkou
objektového přístupu:
public class HelloWorld { public static void
main(String[] args) { Pozdrav pozdrav = new Pozdrav("Ahoj světe!");
pozdrav.print(); } } class Pozdrav { private String text; public Pozdrav(String
pozdrav) { text = pozdrav; } private String getText() { return text; } public
void print() { System.out.println(getText()); } } Související
články
- Platforma Java
- Programování
- Java Native Interface - rozhraní pro přístup k
nativnímu kódu
- JavaScript – podobně se jmenující programovací
jazyk, který se samotnou Javou nemá nic společného
- NetBeans -
vývojové prostředí pro Javu, C++ a Ruby
- Eclipse – vývojové
prostředí pro Javu a C++
- JDeveloper - vývojové prostředí firmy
Oracle (volně šiřitelné)
- BlueJ – volně šiřitelné
multiplatformní vývojové prostředí
Reference
- http://www.emag.cz/kde-ke-svym-nazvum-prisli/
Externí odkazy
Anglicky
- Domovská stránka Javy
- Java pro vývojáře
- Java
projekty a komunity
- Vývoj jazyka Java
Wikiknihy nabízejí dokument na téma:
Java (programovací jazyk)
Česky
- Autorizované Java centrum
- O
Javě na serveru Dioné
- Java blog jAbLoK
- Odborný Java blog Romana „Dagiho“ Pichlíka
Knihy
Česky
- DARWIN, F. Ian. Java.
Praha : Computer Press, 2006. ISBN 80-251-0944-5.
- KEOGH, J.. Java bez předchozích
znalostí. Praha : Computer Press, 2005. ISBN 80-251-0839-2.
- HEROUT, P.. Java.
Praha : Kopp, 2002. ISBN 80-7232-328-9.
- HEROUT, P.. Učebnice jazyka Java.
Praha : Kopp, 2002. ISBN 80-7232-115-3.
Zpravodajství
- Nokia našla nového šéfa pro nutnou revitalizaci, přišel z Microsoftu Z Nokie už od začátku roku prosakovalo, že vedení Nokie není spokojeno s vedením svého nejvyššího šéfa, kterým je Olli-Pekka Kallasvuo. To jemu se zazlívala špatně zvolená strategie, která zapříčinila dramatický pokles podílu v prodejích nových smartphonů a 40% pokles zisku Nokie v loňském roce. ...
- Pamela Anderson natočí film. Kamerou bude Nokia N8 Pamatujete na Pamelu Anderson? Ano, to je ta v červených plavkách a s velkým umělým poprsím. Nokia veřejně nabízí šanci si s ní, nebo anglickým hercem Edem Westwickem zahrát před filmovou kamerou. A ne ledajakou kamerou; onen film má být natočen Nokií N8. Snad žádný telefon se představitelé Nokie ...
- Nokia U: špičkový koncept vytvořený uživateli Je to již pár týdnů, co Nokia přišla s projektem "Design by Community". Sami uživatelé mohli navrhnout vlastnosti jejich vysněného telefonu. Ten Nokia schválila a tak vznikl koncept Nokia U. Podívejte se, co umí ideální telefon dle uživatelů.
- Nokia představuje headset s DVB-H přijímačem pro Symbian^3 Společnost Nokia představila velmi zajímavé příslušenství, navržené pro majitele mobilních telefonů značky Nokia a operačním systémem Symbian^3 (zatím pouze Nokia N8). Novinka nabídne možnost sledování TV bez nutnosti připojení k Wi-Fi síti či dalším datovým kanálům.