K čemu je programovací jazyk Java? Úvod do Javy. Java je multiplatformní jazyk

jazyk Java. Úvod.

Dlouhou dobu bylo těžké si představit počítačový časopis bez článku věnovaného jazyku Java. Psaly o něm dokonce tak populární noviny a časopisy jako The New York Times, The Washington Post a Business Week.

Je nemožné si pamatovat, že by National Public Radio někdy věnovalo desetiminutový pořad programovacímu jazyku. Jestli je to dobře nebo špatně, záleží na úhlu pohledu. A investice 100 milionů dolarů do výroby softwaru vytvořeného pomocí specifického programovacího jazyka?! Televizní společnosti CNN, CNBC a další média pouze hovořily a stále mluví o tom, jak to jazyk Java dokáže a bude dělat.

Tato kniha je však určena pro seriózní programátory, a protože Java je seriózní programovací jazyk, musíme toho hodně probrat. Nebudeme se tedy vrhat do rozboru reklamních slibů a pokusíme se zjistit, co je pravda a co fikce. Místo toho popíšeme jazyk Java poměrně podrobně jako programovací jazyk (samozřejmě včetně funkcí, které jej umožňují používat pro práci na internetu, což ve skutečnosti způsobilo tolik reklamního humbuku). Poté se pokusíme oddělit realitu od fantazie vysvětlením, co jazyk Java skutečně umí a co ne.

Zpočátku byla propast mezi reklamními sliby a reálnými možnostmi jazyka Java. Jak dozrávala, technologie se stala stabilnější a spolehlivější a očekávání klesla na rozumnou úroveň. Jazyk Java se nyní stále více používá k vytváření „middlewaru“, který podporuje komunikaci mezi klienty a serverovými prostředky (jako jsou databáze).

Přestože tyto důležité aplikace nejsou nijak úžasné, právě zde se Java ukázala jako nejužitečnější díky své strojové nezávislosti, multi-threadingu a možnostem síťového programování. Jazyk Java se navíc ujal vedení v oblasti vestavěných systémů a stal se de facto standardem pro přenosná zařízení, virtuální kiosky, palubní počítače v autech atd. První pokusy o přepsání rozšířených programů pro osobní počítače v Javě však nebyly úspěšné – výsledné aplikace se ukázaly jako málo náročné a pomalé. S příchodem nové verze byly některé z těchto problémů vyřešeny, ale i tak je třeba uznat, že uživatelům je obecně celkem jedno, v jakém jazyce jsou kupované programy napsané. Věříme, že hlavní výhody jazyka Java budou pocházet z vytváření nových druhů zařízení a aplikací, spíše než z přepisování stávajících programů.

Jazyk Java jako programovací nástroj

Java jako programovací jazyk splnila své reklamní sliby. Bezpochyby je to jeden z nejlepších jazyků, které jsou k dispozici seriózním programátorům. Java má potenciál stát se skvělým programovacím jazykem, ale teď už je asi pozdě. Když se objeví nový programovací jazyk, okamžitě vyvstane nepříjemný problém jeho kompatibility s dříve vytvořeným softwarem. Navíc, i když lze v těchto programech provádět změny bez zásahu do jejich textu, je pro tvůrce jazyka, který je veřejností tak vřele vítán, jako je Java, obtížné říci přímo: „Ano, možná jsme udělali chyba při vývoji verze X, ale verze Y bude lepší." V důsledku toho musíme při čekání na další vylepšení konstatovat, že struktura jazyka Java se v blízké budoucnosti výrazně nezmění.

Zřejmá otázka zní: " Jak jste zlepšili jazyk Java?"Ukazuje se, že k tomu nedošlo zlepšením samotného programovacího jazyka, ale zásadní změnou knihoven programů napsaných v jazyce Java. Sun Microsystems změnil vše: počínaje jmény jednotlivých funkcí knihoven (tím, že byly smysluplnější) až po zásadní změny v knihovnách programů napsaných v jazyce Java. způsob, jakým grafické moduly fungují (změna způsobu, jakým zpracovává události a přepisování částí pracovních programů) a končí vytvořením nových jazykových funkcí, jako jsou tiskové prostředky, které nebyly v Javě 1.0 přítomny, což má za následek mnohem užitečnější softwarovou platformu než kterákoli předchozí verze jazyka Java.

Společnost Microsoft vydala svůj vlastní produkt s názvem J++ související s jazykem Java. Jazyk J++ je při provádění bajtkódu interpretován virtuálním strojem kompatibilním s Java Virtual Machine, ale rozhraní s externím kódem se mezi těmito jazyky výrazně liší. Jazyky J++ a Java mají téměř stejnou syntaxi. Microsoft však vytvořil další jazykové konstrukce. Všechny mají dosti pochybnou hodnotu, s výjimkou Windows API. Kromě skutečnosti, že tyto jazyky mají stejnou syntaxi, jsou jejich základní knihovny (řetězce, utility, síťové programovací nástroje, multithreadingové nástroje, matematické knihovny atd.) v podstatě stejné.

Grafické knihovny, uživatelské rozhraní a přístup ke vzdáleným objektům jsou však mezi těmito jazyky zcela odlišné. V současné době Microsoft již nepodporuje jazyk J++, protože vyvinul nový jazyk C#, který má mnoho podobností s Javou, ale používá jiný virtuální stroj. Tato kniha nepokrývá ani jazyk J++ ani jazyk C#.

Výhody jazyka Java

1) Jednou z hlavních výhod jazyka Java je nezávislost na platformě, na které jsou programy spouštěny: stejný kód lze spustit pod operačními systémy Windows, Solaris, Linux, Machintosh atd.
To je skutečně nezbytné, když se programy stahují přes internet pro pozdější spuštění v různých operačních systémech.

2) Další výhodou je, že Syntaxe jazyka Java je podobná syntaxi jazyka C++ a programátoři, kteří znají jazyky C a C++, se ji mohou snadno naučit. Je pravda, že pro programátory, kteří mluví Visual Basic, může být tato syntaxe neobvyklá.

Pokud jste nikdy neprogramovali v C++, některé termíny použité v této části vám nebudou jasné. V tomto případě to můžete přeskočit. Než se dostanete na konec kapitoly 6, tyto pojmy vám budou známé.

3) Také Java - plně objektově orientovaný jazyk, dokonce více než C++. Všechny entity v jazyce Java jsou objekty, s výjimkou několika primitivních typů, jako jsou čísla. (Protože objektově orientované programování usnadňuje vývoj složitých projektů, nahradilo starší strukturované programování. Pokud nejste obeznámeni s objektově orientovaným programováním, kapitoly 3-6 vám poskytnou vše, co o něm potřebujete vědět.)

Vyvinout další, mírně vylepšený dialekt jazyka C++ však nestačí. Podstatné je, že je jednodušší vyvíjet bezchybné programy v Javě než v C++. Proč? Vývojáři jazyka Java strávili dlouhou dobu přemýšlením, proč jsou programy napsané v C++ tak náchylné k chybám. Poskytli jazyku Java nástroje k odstranění samotné možnosti tvorby programů, které by skrývaly nejčastější chyby. K tomu se v jazyce Java provádí následující.

4) Možnost explicitního přidělení a uvolnění paměti je vyloučena.
Paměť v Javě se uvolňuje automaticky pomocí mechanismu garbage collection. Programátor má záruku na chyby související s nesprávným použitím paměti.

5) Byla zavedena skutečná pole a aritmetika ukazatelů byla zakázána.
Nyní programátoři v zásadě nemohou vymazat data z paměti kvůli nesprávnému použití ukazatelů.

6) Odpadla možnost záměny operátoru přiřazení s operátorem porovnání rovnosti.
Nyní nemůžete ani zkompilovat příkaz if(ntries = 3). . . (Programátoři Visual Basicu si zde nemusí všimnout žádného problému, protože tato chyba je zdrojem většiny zmatků v C a C++).

7) Vícenásobná dědičnost je vyloučena. Byl nahrazen novým konceptem – rozhraním, vypůjčeným z jazyka Objective C.
Rozhraní poskytuje programátorovi téměř vše, co může získat z vícenásobné dědičnosti, přičemž se vyhýbá složitosti, která vzniká při správě hierarchií tříd.

Vlastnosti jazyka Java

Jednoduchý
Interpretovatelné
Distribuováno
Spolehlivý
Bezpečný
Nezávislý na stroji
Objektově orientované
Vysoký výkon
Vícevláknové
Dynamický
Nezávislé na architektuře počítače

Některých z těchto bodů jsme se již dotkli v minulé části. V této části: poskytneme citace z příručky jazyka Java, které odhalují vlastnosti jazyka; Se čtenáři se podělíme o své myšlenky o jednotlivých vlastnostech jazyka na základě vlastních zkušeností z práce s jeho nejnovější verzí.

Jednoduchý

Chtěli jsme vytvořit systém, který se snadno programuje, nevyžaduje další školení a zohledňuje zavedené programátorské postupy a standardy. Proto, i když jsme C++ považovali za nevhodný pro tyto účely, Java byla navržena tak, aby byla co nejpodobnější, aby byl systém dostupnější. Java postrádá mnoho méně používaných, obskurních a obskurních funkcí C++, o kterých jsme přesvědčeni, že způsobují více škody než užitku.

Syntaxe Java je v podstatě destilovaná verze syntaxe C++. Tento jazyk nemá hlavičkové soubory, aritmetiku ukazatelů (a samotné ukazatele), struktury, sjednocení, přetěžování operátorů, virtuální základní třídy atd. (Rozdíly mezi Javou a C++ jsou popsány v poznámkách k jazyku C++ rozesetých po celé knize.) Vývojáři se však nesnažili napravit všechny nedostatky jazyka C++.

Například syntaxe příkazu switch v Javě zůstává nezměněna. Se znalostí jazyka C++ bude snadné přejít k syntaxi Java.
Pokud obvykle používáte vizuální programovací prostředí (jako je Visual Basic), může se vám Java zdát obtížná.
Jeho syntaxe často vypadá dost zvláštně (ačkoliv není těžké pochopit význam výrazu). Ještě důležitější je, že při práci v Javě je zapotřebí mnohem více programování. Krása jazyka Visual Basic spočívá v tom, že jeho vizuální programovací prostředí umožňuje vytvářet aplikační infrastrukturu téměř automaticky. Dosažení stejného výsledku pomocí Javy vyžaduje ruční programování, ale produkuje mnohem kratší programy.

Existuje však ještě třetí typ programovacího prostředí, které umožňuje vytvářet programy pomocí technologie drag-and-drop.

Dalším aspektem jednoduchosti je stručnost. Jedním z cílů jazyka Java je umožnit vývoj programů, které lze provozovat zcela samostatně na malých strojích. Velikost hlavního interpretu a podpory třídy je asi 40 KB; standardní knihovny a podpora vláken (zejména samostatné mikrojádro) zabírají dalších 17:KB.
To je obrovský úspěch. Všimněte si však, že knihovny podpory GUI jsou mnohem větší.

Objektově orientované

Jednoduše řečeno, objektově orientované programování je metoda programování, která se zaměřuje na data (tedy objekty) a prostředky, jak k nim přistupovat. Abychom použili tesařskou analogii, objektově orientovaný řemeslník se primárně soustředí na židli, kterou vyrábí, a teprve sekundárně se zabývá nástroji potřebnými k její výrobě; přitom neobjektově orientovaný truhlář myslí jen na své nářadí. Objektově orientované vlastnosti Java a C++ jsou v podstatě stejné.

Objektová orientace již prokázala svou hodnotu za posledních 30 let a nelze si bez ní představit moderní programovací jazyk. Objektově orientované vlastnosti jazyka Java jsou srovnatelné s jazykem C++. Hlavním rozdílem mezi nimi je mechanismus vícenásobné dědičnosti, pro který bylo nejlepší řešení nalezeno v jazyce Java, stejně jako metatřídní model jazyka Java.

Odraz (kapitola 5) a serializace objektů (kapitola 12) poskytují trvalé objekty a nástroje pro vytváření grafických uživatelských rozhraní z hotových komponent.

Pokud jste nikdy neprogramovali v objektově orientovaném jazyce, přečtěte si pozorně kapitoly 4-6. Tyto kapitoly představují základy objektově orientovaného programování a ukazují jeho výhody oproti tradičním, procedurálně orientovaným jazykům, jako je C nebo Basic, při vývoji složitých projektů.

Distribuováno

Java má velkou knihovnu programů pro přenos dat založených na TCP/IP (Transmission Control Protocol/Internet Protocol), jako je HTTP (Hypertext Transfer Protocol) nebo FTP (File Transfer Protocol). Aplikace napsané v Javě mohou otevírat a přistupovat k objektům přes síť pomocí aAdresy URL (Uniform Resource Location) jsou stejně snadné jako místní síť.

Jazyk Java poskytuje výkonné a pohodlné nástroje pro vytváření sítí. Každý, kdo někdy zkoušel psát programy pro internet v jiných jazycích, bude příjemně překvapen, jak snadno se v Javě vyřeší ty nejobtížnější úkoly, například otevírání síťových připojení (socketů). Práci na serveru maximálně zefektivňuje elegantní mechanismus složený z tzv. servletů.

Servlety jsou podporovány mnoha populárními webovými servery. (Sítě budou popsány ve 2. dílu.) Komunikaci mezi distribuovanými objekty v Javě zajišťuje mechanismus vzdáleného vyvolání metody (také zahrnut ve 2. dílu).

Spolehlivý

Jazyk Java je navržen tak, aby vytvářel programy, které by měly spolehlivě fungovat v každé situaci. Java se zaměřuje především na včasnou detekci možných chyb, dynamickou kontrolu (během provádění programu) a eliminaci situací náchylných k chybám... Jediným podstatným rozdílem mezi Javou a C++ je ukazatelový model přijatý v Javě, který eliminuje možnost přepsání části paměti a poškození dat.

Tato vlastnost je také velmi užitečná. Kompilátor jazyka Java detekuje chyby, které jsou v jiných jazycích detekovány pouze během provádění programu. Navíc programátoři, kteří strávili mnoho hodin hledáním chyby, která způsobila poškození paměti kvůli neplatnému ukazateli, budou velmi rádi, když zjistí, že takové problémy nemohou v jazyce Java v zásadě nastat.

Pokud jste dříve programovali ve Visual Basic nebo COBOL, které explicitně nepoužívají ukazatele, možná nechápete, proč je to tak důležité. C programátoři mají mnohem méně štěstí. Potřebují ukazatele pro přístup k řetězcům, polím, objektům a dokonce i souborům. Při programování ve Visual Basicu není nic z toho potřeba a programátor se nemusí starat o alokaci paměti pro tyto entity. Na druhou stranu je mnoho datových struktur velmi obtížné implementovat v jazyce bez ukazatelů. Pro běžné struktury, jako jsou řetězce a pole, nejsou ukazatele potřeba. Plná síla ukazatelů se uplatní pouze tehdy, když se bez nich neobejdete, například při vytváření propojených seznamů. Java programátor je navždy bez špatných ukazatelů, špatných alokací a úniků paměti.

Bezpečný

Jazyk Java je navržen pro použití v síťovém nebo distribuovaném prostředí. Z tohoto důvodu byla věnována velká pozornost bezpečnosti. Jazyk Java umožňuje vytvářet systémy, které jsou chráněny před viry a vnějšími zásahy.

V prvním vydání jsme napsali: „Nikdy neříkej nikdy“ a měli jsme pravdu. Skupina bezpečnostních expertů z Princetonské univerzity objevila první bezpečnostní chyby v Javě 1.0 krátce po vydání první verze JDK. Navíc oni i další specialisté nadále nacházeli další a další nové chyby v bezpečnostních mechanismech všech následujících verzí jazyka Java.

Pozitivní stránkou této situace je, že jazykový tým Java prohlásil, že netoleruje žádné bezpečnostní chyby a okamžitě začal opravovat jakékoli problémy nalezené v bezpečnostním mechanismu appletu. Sun zejména zveřejněním interních specifikací překladače jazyka Java výrazně usnadnil hledání skrytých bezpečnostních chyb a přilákal nezávislé odborníky, aby je našli.

Tím se zvýšila pravděpodobnost, že budou brzy odhaleny případné chyby v bezpečnostním systému. V každém případě je nesmírně obtížné porazit bezpečnostní systém jazyka Java. Dosud objevené chyby byly téměř nenápadné a jejich počet je (relativně) malý.

Webová stránka Sunu o zabezpečení má následující URL: http://java.sun.com/sfaq/.

Uveďme si některé situace, kterým bezpečnostní systém jazyka Java předchází.

1) Přetečení zásobníku spustitelného programu, které způsobil nechvalně známý „červ“, který se rozšířil po internetu.

2) Poškození paměťových oblastí umístěných mimo prostor přidělený procesu.

3) Čtení a zápis místních souborů při použití zavaděče zabezpečené třídy, jako je webový prohlížeč, který takový přístup k souborům zakazuje.

Všechna tato bezpečnostní opatření jsou vhodná a obvykle fungují bezchybně, ale nikdy není na škodu být obezřetný. Přestože dosud objevené chyby zdaleka nebyly triviální a podrobnosti o jejich objevení jsou často utajovány, je třeba uznat, že prokázat bezpečnost jazyka Java je pravděpodobně stále nemožné.

Postupem času byly do jazyka přidány nové ochrany. Počínaje verzí 1.1 zavedl jazyk Java koncept digitálně podepsaných tříd. Použitím digitálně podepsané třídy si můžete být jisti jejím autorem. Pokud jí důvěřujete, můžete této třídě udělit všechna oprávnění dostupná na vašem počítači.

Alternativní mechanismus doručování kódu navržený společností Microsoft se opírá o technologii ActiveX a pro zabezpečení používá pouze digitální podpisy. Je zřejmé, že to nestačí - každý uživatel softwaru společnosti Microsoft může potvrdit, že programy od známých výrobců často padají, čímž vzniká riziko poškození dat. Zabezpečení Java je mnohem silnější než technologie ActiveX, protože kontroluje aplikaci od okamžiku jejího spuštění a zabraňuje jejímu poškození.

Architektura nezávislá

Kompilátor vygeneruje objektový soubor, jehož formát nezávisí na architektuře počítače, zkompilovaný program lze spouštět na libovolném procesoru pod kontrolou systému Java pro provádění programu. Za tímto účelem kompilátor jazyka Java generuje příkazy bajtového kódu, které jsou nezávislé na konkrétní architektuře počítače. Bytový kód je navržen tak, aby jej bylo možné snadno interpretovat na jakémkoli počítači nebo přeložit do kódu závislého na stroji za běhu.

To není nová myšlenka. Před více než 20 lety používala implementace Pascal Niclause Wirtha i UCSD Pascal stejnou technologii. Použití bajtkódů poskytuje velký zisk při provádění programu (ačkoli to v mnoha případech kompenzuje synchronní kompilace). Vývojáři jazyka Java odvedli vynikající práci při vývoji sady instrukcí bajtového kódu, které perfektně fungují na většině moderních počítačů a snadno se převádějí do skutečných strojových instrukcí.

Nezávislý na stroji

Na rozdíl od C a C++ nemá specifikace Java aspekty specifické pro implementaci. Jak velikost základních datových typů, tak i aritmetické operace s nimi jsou přesně definovány.

Například typ int v Javě vždy znamená 32bitové celé číslo. V jazycích C a C++ může typ int znamenat buď 16bitové nebo 32bitové celé číslo, stejně jako celé číslo libovolné velikosti, podle výběru vývojáře konkrétního kompilátoru. Jediným omezením je, že velikost typu int nemůže být menší než velikost krátkého typu int a větší než velikost dlouhého typu int. Pevná velikost číselných typů zabraňuje mnoha potížím spojeným se spouštěním programů na různých počítačích. Binární data jsou ukládána a přenášena v pevném formátu, což také zabraňuje nedorozuměním spojeným s různým pořadím bajtů na různých platformách (konflikt „big endian/little endian“). Řetězce jsou uloženy ve standardním formátu Unicode.

Knihovny, které jsou součástí systému, definují rozhraní nezávislé na počítači. Jazyk například poskytuje abstraktní třídu Window a její implementace pro operační systémy Unix, Windows a Macintosh.

Každý, kdo se někdy pokusil napsat program, který běží stejně dobře na Windows, Macintoshi a deseti variantách Unixu, ví, že je to velmi obtížný úkol. Verze Java se odvážně pokusila vyřešit tento problém poskytnutím jednoduché sady nástrojů, která přizpůsobuje běžné prvky uživatelského rozhraní široké škále softwarových platforem. Bohužel, knihovna, která dala hodně práce, nedosahovala přijatelných výsledků na různých platformách. (Zároveň se v grafických programech na různých platformách objevily různé chyby.)

To byl však jen začátek. V mnoha aplikacích je nezávislost na stroji mnohem důležitější než sofistikovanost grafického uživatelského rozhraní. Toto jsou aplikace, které těžily z vydání Java 1.0. Sada nástrojů GUI však byla nyní zcela přepracována a již není závislá na uživatelském rozhraní hostitelského počítače. Nová verze je smysluplnější a podle nás i atraktivnější pro uživatele než ty předchozí.

Interpretovatelné

Interpret jazyka Java lze poslat na jakýkoli stroj a spustit bytecode přímo na něm. Vzhledem k tomu, že úprava odkazů je jednodušší proces, může být vývoj programu mnohem rychlejší a efektivnější.

To může být výhoda při vývoji aplikací, ale výše uvedená citace je jasná nadsázka. V každém případě je kompilátor Java obsažený v JSDK (Java Software Development Kit) poměrně pomalý. (Některé kompilátory třetí třídy, jako jsou ty od IBM, jsou mnohem rychlejší.) Rychlost rekompilace je pouze jedním z faktorů efektivity programovacího prostředí. Když porovnáte rychlost programovacích prostředí Java a Visual Basic, možná budete zklamáni.

Vysoký výkon

Zatímco obecně interpretované bajtové kódy mají více než adekvátní výkon, existují situace, ve kterých je vyžadována ještě vyšší efektivita. Bytekódy lze za běhu (během běhu) překládat na strojové kódy pro konkrétní procesor, na kterém aplikace běží.

Pokud ke spouštění bajtových kódů používáte překladač, neměli byste používat frázi „vysoký výkon“. Na mnoha platformách je však možný jiný typ kompilace, poskytovaný kompilátory just-in-time (JIT). Přeloží bajtkód do nativního kódu, uloží výsledek do paměti a v případě potřeby jej zavolají. Protože se interpretace provádí pouze jednou, tento přístup mnohonásobně zvyšuje rychlost.

Ačkoli jsou synchronní kompilátory stále pomalejší než strojově závislé kompilátory, jsou v každém případě mnohem rychlejší než interprety a poskytují 10- a dokonce 20násobné zrychlení pro některé programy. Tato technologie se neustále zlepšuje a může nakonec dosáhnout rychlosti, kterou tradiční kompilátory nikdy nepřekonají. Synchronní kompilátor může například určit, která část kódu se spouští častěji, a optimalizovat ji pro rychlost provádění.

VÍCEVITOVÝ

Poskytuje lepší interaktivitu a provádění programu.

Pokud jste někdy zkoušeli implementovat vícevláknové výpočty v jakémkoli jiném programovacím jazyce, budete příjemně překvapeni, jak snadné je to udělat v Javě. Vlákna v Javě mohou využívat výhod víceprocesorových systémů, pokud to operační systém umožňuje. Implementace vláken na většině platforem se bohužel velmi liší a návrháři jazyka Java se nesnaží dosáhnout jednotnosti. Pouze kód pro volání vláken zůstává stejný pro všechny stroje; Jazyk Java odkládá implementaci multithreadingu na základní operační systém nebo knihovnu vláken. (Vlákna jsou zahrnuta ve svazku 2.) Navzdory tomu je to právě snadnost vícevláknového počítání, co činí Java tak atraktivní pro vývoj serverového softwaru.

Dynamický

V mnoha ohledech je jazyk Java dynamičtější než C nebo C++. Byl navržen tak, aby se snadno přizpůsobil neustále se měnícímu prostředí. Nové metody a objekty lze volně přidávat do knihoven, aniž by došlo k poškození. Jazyk Java usnadňuje získávání informací o průběhu programu.

To je velmi důležité v případech, kdy potřebujete přidat kód do již spuštěného programu. Ukázkovým příkladem je kód, který je stažen z internetu, aby jej prohlížeč provedl. V Javě 1.0 nebylo snadné získat informace o průběhu běžícího programu, ale aktuální verze jazyka Java programátorovi odhaluje jak strukturu, tak chování objektů běžícího programu.
To je velmi cenné pro systémy, které musí během provádění programu analyzovat objekty. Tyto systémy zahrnují nástroje grafického uživatelského rozhraní, inteligentní debuggery, zásuvné komponenty a databáze objektů.

Java a internet

Myšlenka je jednoduchá – uživatelé si stahují bajtové kódy Java z internetu a spouštějí je na svých počítačích. Java programy, které běží pod webovými prohlížeči, se nazývají applety. K použití apletu potřebujete webový prohlížeč, který podporuje jazyk Java a umí interpretovat bajtové kódy. Zdrojový kód jazyka Java je licencován společnosti Sun, která trvá na tom, že jazyk samotný i struktura jeho základních knihoven zůstávají nezměněny. Bohužel ve skutečnosti není všechno takové. Různé verze prohlížečů Netscape a Internet Explorer podporují různé verze jazyka Java a některé z těchto verzí jsou značně zastaralé. Tato nešťastná situace stále více vytváří překážky pro vývoj apletů, které využívají nejnovější verzi jazyka Java. K vyřešení tohoto problému vyvinul Sun Java Plug-in, který poskytuje nejpokročilejší prostředí pro spouštění programů Java v prohlížečích Netscape a Internet Explorer.

Načtení apletu je jako vložení obrázku do webové stránky. Applet se stane součástí stránky a text obtéká prostor, který zabírá. Rozdíl je však v tom, že obraz je nyní živý. Reaguje na uživatelské příkazy, mění svůj vzhled a umožňuje přenos dat mezi počítačem, na kterém je applet prohlížen, a počítačem, který applet ovládá.

Načtení apletu je jako vložení obrázku do webové stránky. Applet se stane součástí stránky a text obtéká prostor, který zabírá. Jde o to, že obraz je „živý“. Reaguje na uživatelské příkazy, mění svůj vzhled a přenáší data mezi počítačem, na kterém je spuštěn applet, a počítačem, který aplet ovládá.

Na Obr. Obrázek 1.1 ukazuje dobrý příklad dynamické webové stránky, která provádí složité výpočty a používá aplet k zobrazení molekul. Chcete-li lépe porozumět struktuře molekuly, můžete ji otočit nebo přiblížit pomocí myši. Takové manipulace nelze implementovat na statických webových stránkách, ale applety to umožňují. (Tento aplet lze nalézt na http://jmol.sourceforge.net.)

Rýže. 1.1. Applet Jmol

Pomocí apletů můžete na webovou stránku přidat nová tlačítka a textová pole. Takové aplety se však přes telefonní linku načítají pomalu.

Téměř totéž lze provést pomocí dynamického HTML, forem HTML (Hypertext Markup Language) nebo skriptovacího jazyka, jako je JavaScript. První applety byly samozřejmě určeny pro animaci: rotující zeměkoule, tančící kreslené postavičky, efektní text atd. Většinu toho samého však umí animované GIFy a dynamické HTML v kombinaci se skriptováním umí mnohem více než applety.

V důsledku nekompatibility prohlížečů a nekonzistentních procesů načítání přes pomalá síťová připojení nebyly aplety navržené pro webové stránky velkým pokrokem. V lokálních sítích (intranetech) je situace zcela odlišná. Obvykle nemají problémy s šířkou pásma, takže doba načítání apletů je zanedbatelná. V místní síti si můžete vybrat požadovaný prohlížeč nebo použít program Java Plug-In. Zaměstnanci nemohou přesunout software dodaný ze sítě na nesprávné místo nebo jej nesprávně nainstalovat a správce systému nemusí obcházet všechny klientské počítače a aktualizovat na nich software. Velké množství programů určených pro evidenci zásob, plánování dovolené, proplácení cestovních náhrad a podobně vyvinulo mnoho korporací ve formě appletů pomocí prohlížečů.

Zatímco jsme psali knihu, kyvadlo se opět přehouplo od klientských programů k programování na straně serveru. Aplikační servery mohou zejména využívat monitorovací schopnosti virtuálního stroje Java k automatickému vyvážení zátěže, slučování databázových připojení, synchronizaci objektů, bezpečnému vypínání a restartování a provádění dalších procesů vyžadovaných pro škálovatelné serverové aplikace, které je téměř nemožné správně implementovat. Programátoři vytvářející aplikace si tak mohli tyto složité mechanismy koupit, místo aby je sami vyvíjeli. To zvýšilo produktivitu programátorů - zaměřili se na logiku svých programů, aniž by je rozptylovaly detaily související s provozem serverů.

13 tis

V této příručce probereme vše, co potřebujete vědět, než začnete studovat. programování v Jáva. Dozvíte se o možnostech platformy, její aplikaci a jak se správně začít učit Javu.

Co je to programovací jazyk Java?

V roce 1991 „Green Team“, divize společnosti Sun Microsystems, vedená o James Gosling, vytvořil jazyk pro programování zařízení spotřební elektroniky. Tehdy se mu říkalo Dub („Dub“). Proč "Dub"? Jednoduše proto, že tento strom rostl za oknem Goslingovy kanceláře.

Zelený tým předvedl použití dubu v interaktivní televizi. Ale pro digitální kabelovou televizi těch let byla tato technologie příliš pokročilá. Ve stejné době získával na oblibě internet, pro který byl nový programovací jazyk nejvhodnější.

Po nějaké době byl nový jazyk přejmenován na Green a poté - Java, na počest kávy z ostrova Java. Proto je na logu Java hrnek na kávu.

Během vývoje Javy bylo populární C/C++, takže Gosling udělal syntaxi jazyka podobnou C/C++ a implementoval „ napište jednou - běžte kamkoli" V roce 1995 Sun Microsystems vydala první oficiální verzi Javy. A zároveň bylo oznámeno, že Java bude zahrnuta do prohlížeče Netscape Navigator.

V roce 2010 společnost Sun Microsystems spolu s programovacím jazykem Java získala společnost Oracle Corporation.

Historie verzí Java

  1. Červen 1991 – zahájení developerského projektu programovací jazyk Jáva.
  2. JDK 1.0 – leden 1996.
  3. JDK 1.1 – únor 1997.
  4. J2SE 1.2 – prosinec 1998.
  5. J2SE 1.3 – květen 2000.
  6. J2SE 1.4 – únor 2002.
  7. J2SE 5.0 – září 2004.
  8. Java SE 6 – prosinec 2006.
  9. Java SE 7 – červenec 2011.
  10. Java SE 8 – 18. března 2014.
  11. Java SE 9 – 21. září 2017.

Funkce programovacího jazyka Java

Java je multiplatformní jazyk

Java kód napsaný na jedné platformě ( tedy operační systém), lze spustit bez úprav na jiných platformách.

Java se používá ke spuštění Java ( Java Virtual Machine, JVM). JVM zpracuje bajtový kód, načež procesor zpracuje kód přijatý z JVM. Všechny virtuální stroje fungují podobně, takže stejný kód běží stejně na všech operačních systémech, což z Javy dělá multiplatformní programovací jazyk.

Objektově orientovaný programovací jazyk

Existují různé styly programování a jedním z nejoblíbenějších je objektově orientované programování. S tímto přístupem se složitý problém rozkládá na menší vytvářením objektů. Díky tomu lze kód znovu použít.

Objektově orientované funkce lze nalézt v mnoha programovacích jazycích, včetně Javy, Pythonu a C++. Pokud to s učením programování myslíte vážně, stojí za to přidat do vašeho učebního plánu objektově orientované přístupy.

Java je rychlá

Rané verze programovací jazyk Java byla často kritizována za to, že je pomalá. Dnes se ale situace dramaticky změnila. Nové verze JVM běží mnohem rychleji a procesory, které je interpretují, jsou stále rychlejší.

Dnes je Java jedním z nejrychlejších programovacích jazyků. Dobře optimalizovaný kód Java běží téměř stejně rychle jako nízkoúrovňové programovací jazyky, jako je C/C++ a mnohem rychleji než Python, PHP atd.

Java je bezpečná platforma

Java je:

  • bezpečná platforma pro vývoj a spouštění aplikací;
  • poskytuje nástroje pro automatickou správu paměti, což snižuje zranitelnost kódu;
  • zajišťuje bezpečný přenos dat.

Rozsáhlá základní knihovna

Jedním z důvodů, proč je Java tak rozšířená, je její obrovská standardní knihovna. Obsahuje stovky tříd a metod z různých balíčků, které vývojářům usnadňují život. Např,

java.lang jsou pokročilé funkce pro řetězce, pole atd.

java.util – knihovna pro práci s datovými strukturami, regulárními výrazy, datem a časem atp.

kava.io - knihovna pro vstup/výstup souborů, zpracování výjimek atd.

Aplikace platformy Java

Než se naučíte Javu programování od nuly, musíte vědět, že na této platformě fungují více než 3 miliardy zařízení po celém světě. Na co přesně se dá použít:

  1. Aplikace pro Android – K vývoji aplikací pro Android se často používá programovací jazyk Java v kombinaci s Android SDK ( z anglického software development kit - software development kit).
  2. Webové aplikace – Java se používá k vytváření webových aplikací pomocí serverových programů, rámce Struts a JSP. Některé populární webové aplikace napsané v Javě jsou: Google.com, Facebook.com, eBay.com, LinkedIn.com.

Stojí za zmínku, že tyto stránky nejsou nutně napsány výhradně v Javě a mohou používat i jiné programovací jazyky.

  1. Vývoj softwaru– programy jako Eclipse, OpenOffice, Vuze, MATLAB a mnoho dalších jsou napsány v Javě.
  2. Zpracování velkých dat – pro zpracování „velkých dat“ můžete použít framework Hadoop napsaný v Javě.
  3. Obchodní systémy– pomocí platformy Oracle Extreme Java Trading Platform, můžete psát programy pro obchodování.
  4. Vestavěná zařízení– dnes jsou miliardy zařízení, jako jsou televizory, SIM karty, přehrávače Blu-ray atd., založeny na technologii Java Embedded od společnosti Oracle.

Taky programování zapnuto Java se používá k vývoji her, vědeckých aplikací ( například pro zpracování přirozeného jazyka) a v mnoha dalších oblastech.

Terminologie Java, kterou byste měli znát

Java je soubor technologií ( programovací jazyk a počítačová platforma), určené k vytváření a spouštění softwaru. Termín Java však často označuje samotný programovací jazyk.

Programovací jazyk Java je multiplatformní, objektově orientovaný, univerzální programovací jazyk s rozsáhlými možnostmi.

Java 9 je nejnovější verzí Javy v době psaní tohoto článku.

Java EE, Java Me a Java SE – tyto názvy znamenají Java Enterprise Edition, Micro Edition a Standard Edition.

Java EE je zaměřena na aplikace, které běží na serverech. Java ME je navržena pro zařízení s omezeným výkonem, jako jsou vestavěná zařízení. Java SE je standardní edice Javy pro psaní obecných programů.

Pokud jste noví Java programování, doporučujeme začít s Java SE.

JVM – Java Virtual Machine (" virtuální stroj Java") je program, který umožňuje počítači spouštět programy napsané v Javě.

JRE – Java Runtime Environment (“ Java runtime") zahrnuje JVM, přidružené knihovny a další součásti potřebné ke spouštění programů. JRE však nemá kompilátor, debugger ani jiné vývojové nástroje.

JDK – Java Development Kit Java vývojář) obsahuje JRE a další vývojové nástroje, jako jsou kompilátory, debuggery atd.

Jak spustit Java na vašem operačním systému

Jak spustit Java na Mac OS

Zde je to, co udělat pro Javu programování od nuly a instalace platformy na Mac OS X nebo macOS:

  1. Stáhněte si nejnovější verzi Java ( JDK) s Stránky pro stahování Java SE.
  2. Dvakrát klikněte na stažený soubor DMG a postupujte podle pokynů instalačního programu.
  3. Chcete-li ověřit instalaci, otevřete terminál a zadejte následující příkaz:

javac – verze

Pokud je Java správně nainstalována, verze programu se zobrazí na obrazovce ( například javac 1.8.0_60).

Dalším krokem je instalace IDE ( integrované vývojové prostředí) pro psaní a spouštění kódu Java. Nainstalujeme bezplatnou verzi IntelliJ IDEA a spustíme na ní Javu. Chcete-li to provést, postupujte takto:

  1. Jít do Stránka ke stažení IntelliJ a stáhněte si bezplatnou komunitní edici.
  1. Otevřete stažený soubor DMG a postupujte podle pokynů k instalaci. Pro rychlý přístup můžete IntelliJ IDEA přesunout do složky Aplikace.
  2. Otevřete IntelliJ IDEA. Vyberte možnost „Neimportovat nastavení“ („ Neimportujte nastavení") a klikněte na "OK". Poté přijměte zásady ochrany osobních údajů Jetbrains kliknutím na tlačítko „Přijmout“.
  3. Nyní si můžete přizpůsobit rozhraní pro sebe. Tento krok můžete také přeskočit a ponechat vše jako výchozí. Pokud si nejste jisti, jednoduše tento krok přeskočte kliknutím na tlačítko „Přeskočit vše a nastavit výchozí“ („ Vše přeskočte a nastavte na výchozí nastavení»).
  1. Program vám zobrazí uvítací stránku. Klikněte na tlačítko „Vytvořit nový projekt“ („ Vytvořte nový projekt»).
  2. V dalším okně vyberte v levém podokně „Java“ a kliknutím na „Nový“ v horní části okna programu vyberte „JDK“. Zde musíte vybrat umístění, kam jste nainstalovali JDK, a potom klepněte na tlačítko Další.
  1. Budete mít možnost vytvořit projekt ze šablony („Vytvořit projekt ze šablony“). Ignorujeme to a klikneme na tlačítko „Další“.
  2. V dalším kroku instalace programovací jazyk Java zadejte název projektu a klikněte na tlačítko "Dokončit".
  3. V levém panelu uvidíte svůj projekt. Pokud panel není vidět, přejděte do nabídky Pohledy > Okna nástrojů > Projekt.
  4. Přejděte na Hello > New > Java a zadejte název třídy. Nazvali jsme to První.
  1. Chcete-li spustit program, který jste právě napsali, přejděte na Spustit > Spustit... Klikněte na První ( tedy název souboru, který jsme vytvořili

Jak spustit Java na Linuxu

Chcete-li spustit příklady z lekce programování od nuly Java na Linuxu bude potřebovat JAVA SE Development Kit ( JDK) a IDE pro vývoj vašich projektů. Chcete-li začít s Javou, postupujte podle pokynů krok za krokem.

Nainstalujte Javu

  1. Otevřete terminál a zadejte následující příkaz pro instalaci Java:

    sudo add-apt-repository ppa:webupd8team/java sudo apt update; sudo apt install oracle-java8-installer

  1. Přijměte licenční smlouvu a podmínky použití kliknutím na „OK“ a „Ano“.
  2. Nainstalovali jste Javu. Chcete-li ověřit, že instalace proběhla úspěšně, zadejte do terminálu následující příkaz:

java – verze

Pokud je zobrazena aktuální verze, instalace proběhla úspěšně. Pokud ne, zkontrolujte u Stránka nápovědy Oracle.

Instalace IntelliJ IDEA

  1. Jít do .
  1. Stáhněte si bezplatnou komunitní edici kliknutím na tlačítko „Stáhnout“.
  2. Po stažení změnit adresář v terminálu do adresáře pro stahování a extrahujte soubor Java tar do složky /opt pomocí následujícího příkazu:

sudo tar xf .tar.gz -C /opt/

  1. Po rozbalení změňte adresář na složku bin programu IntelliJ IDEA:

    cd /opt/ /zásobník

  2. Chcete-li spustit IDE, zadejte následující příkaz:
  3. Vyberte „Neimportovat nastavení“ („ Neimportujte nastavení") a klikněte na "OK". Poté přijímáme zásady ochrany osobních údajů Jetbrains kliknutím na tlačítko „Přijmout“.
  4. Nyní k průchodu kurzy programování Java, rozhraní si můžete přizpůsobit sami. Vytvořte si na ploše zástupce pro rychlý přístup k programu. Poté pro spuštění IDE klikněte na „Další“ ve všech následujících fázích.
  5. Program zobrazí uvítací stránku. Klikněte na "Vytvořit nový projekt" (" Vytvořte nový projekt»).
  6. V dalším okně vyberte v levém podokně "Java" a ujistěte se, že je v řádku Project SDK vybrána Java. Pokud ne, vyberte umístění, kam jste nainstalovali JDK: /usr/lib/jvm/java-8-oracle.
  1. Klikněte dvakrát na „Další“ a vytvořte projekt.
  2. V dalším kroku zadejte název projektu a klikněte na tlačítko „Dokončit“. Nyní v levém panelu uvidíte svůj projekt. Pokud tento panel není vidět, přejděte do nabídky Pohledy > Okna nástrojů > Projekt.
  3. Přidejte novou třídu Java. Vyberte src v levém podokně pravým kliknutím a přejděte na Nový > Java Class. Zadejte název třídy. V názvu třídy by neměly být žádné mezery.
  1. Napište Java kód a uložte projekt.
  2. Chcete-li program spustit, přejděte na Spustit > Spustit... Klikněte na HelloWorld ( Název projektu) - program zkompiluje soubor a spustí jej.

Jak spustit Java ve Windows (XP, 7, 8 a 10)

Pro zvládnutí Javy základy programování a provozování platformy na Windows, budete potřebovat JAVA SE Development Kit (JDK) a IDE pro vývoj projektů. Postupujte podle níže uvedených pokynů krok za krokem:

Instalace Java

  • Jít do stránka ke stažení Java Standard Edition Development Kit.
  1. V sekci Java SE Development Kit v horní části tabulky klikněte na "Přijmout licenční smlouvu" (" Přijměte licenční smlouvu"). Poté klikněte na odkaz Windows (x64), pokud máte 64bitový operační systém nebo Windows (x86), pokud máte 32bitový operační systém.
  1. Po stažení spusťte instalační soubor a postupujte podle pokynů na obrazovce. Klikněte na " další" Vyberte všechny funkce stisknutím tlačítka " Tato funkce bude nainstalována na místní pevný disk" a zkopírujte umístění instalace ( je zvýrazněna žlutě) v Poznámkovém bloku a poté znovu klikněte další».
  1. Během procesu instalace budete vyzváni k instalaci JRE. Klikněte na „Další“ a poté na „Dokončit“ pro dokončení instalace.
  2. Nyní musíte upravit proměnnou PATH. Jít do Ovládací panely > Systém a zabezpečení > Systém. V levém podokně vyberte " Další systémové parametry“.
  1. Klikněte na " Proměnné prostředí". V kapitole " Systémové proměnné" Najděte proměnnou PATH a v dalším okně klikněte na "Upravit".
  1. Vyberte veškerý text v " proměnná hodnota" a zkopírujte jej do samostatného textového souboru. Usnadníte tak úpravy a kontrolu chyb. Podívejte se, zda zkopírovaný text obsahuje řádek: C: ProgramData Oracle Java javapath; . Pokud ano, můžete přejít k dalšímu kroku. Pokud ne, vložte umístění instalace, které jste zkopírovali dříve, na začátek proměnné a přidejte bin na konec řádku takto: C : Program Files (x 86) Java jdk 1.8.0_112 bin ; Vezměte prosím na vědomí, že vaše verze JDK (jdk 1.8.0_112) se může lišit. Zkopírujte hodnotu proměnné a vložte ji do pole PATH.
  1. Klikněte na " OK“ pro uložení změn.
  2. Chcete-li zkontrolovat, zda je platforma správně nainstalována úvod do programování Java, otevři příkazový řádek zadáním cmd do vyhledávacího pole Windows nebo pomocí příkazu „Spustit…“ ( Windows - R). Zadejte příkaz java -version. Pokud je zobrazena aktuální verze Java, instalace proběhla úspěšně. Pokud ne, zkontrolujte u Stránka nápovědy Oracle.

Instalace IntelliJ IDEA

  1. Jít do Stránka ke stažení IntelliJ IDEA.
  2. Stáhněte si bezplatnou komunitní edici kliknutím na „Stáhnout“.
  1. Po stažení spusťte instalační soubor a postupujte podle pokynů na obrazovce. Poté vytvořte zástupce na ploše pro 64bitovou verzi a přidejte přidružení s příponou .java. Klikněte na „Další“ a pokračujte v instalaci.
  1. Po instalaci otevřete IntelliJ IDEA kliknutím na ikonu na ploše.
  2. Vyberte "Neimportovat nastavení" (" Neimportujte nastavení") a klikněte na "OK". Poté přijímáme zásady ochrany osobních údajů Jetbrains kliknutím na „Přijmout“.
  3. Nyní si můžete přizpůsobit rozhraní pro sebe. Tento krok můžete také přeskočit a ponechat vše jako výchozí kliknutím na tlačítko „Přeskočit vše a nastavit výchozí“.
  4. Program zobrazí uvítací stránku. Klikněte na "Vytvořit nový projekt" (" Vytvořte nový projekt»).
  1. V dalším okně vyberte v levém podokně „Java“ a kliknutím na „Nový“ v horní části okna programu vyberte JDK. Zde musíte vybrat umístění, kam jste nainstalovali JDK během instalace Java, a poté klikněte na „Další“.
  2. IntelliJ IDEA najde JDK a rozpozná jej. Není třeba označovat žádné další možnosti, stačí kliknout na „Další“.
  3. Na další obrazovce zadejte název projektu: HelloWorld a klikněte na Dokončit. Pokud program říká, že adresář neexistuje, klepněte na OK. Pokud levé podokno nevidíte, přejděte na Zobrazení > Okna nástrojů > Projekt.
  4. Chcete-li nastavit název třídy, vyberte složku src v levém podokně. Klikněte na něj pravým tlačítkem, přejděte na Nový > Java a nastavte název třídy. V názvu třídy by neměly být žádné mezery.
  1. Napište kód a uložte projekt Java lekce programování.
  2. Pro spuštění programu přejděte do nabídky Spustit > Spustit... Klikněte na HelloWorld - program zkompiluje soubor a spustí jej.

Váš první Java program

K seznámení uživatelů s novým programovacím jazykem používají program Hello World („Ahoj, světe!“). Jedná se o jednoduchý program, který zobrazuje slova Hello, World! V této části vás naučíme, jak napsat tento program v Javě pomocí IntelliJ IDEA.

  1. Otevřete IntelliJ IDEA.
  2. Přejděte na Soubor > Nový > Projekt… > Java ( v levém navigačním panelu).
  3. Nastavte název projektu z kurz programování J a va. Nazveme to Hello World a klikneme na Dokončit.
  4. Nyní musíme vytvořit novou třídu Java.
  5. Vyberte složku src v levém podokně, poté přejděte na Soubor > Nový > Třída Java a pojmenujte novou třídu HelloWorld.
  6. Zkopírujte následující kód do souboru HelloWorld.java a uložte jej.

public class HelloWorld ( public static void main(String args) ( // vypíše "Ahoj, světe!" System.out.println("Ahoj, světe!"); ) )

  1. Klikněte na tlačítko start ( Běh). Pokud je vše v pořádku, uvidíte na obrazovce Hello, World!.

Jak se naučit Javu?

Oficiální Java dokumentace

Oracle, společnost, která vlastní Javu, vydává kvalitní návody. Oficiální dokumentace pokrývá všechny funkce Java a je pravidelně aktualizována.

Poznámka: Jediným negativem je, že oficiální dokumentace Java není vždy napsána v nejjednodušším jazyce.

Pokud se opravdu chcete učit programování v Java, kup si dobrou knihu. 1000 stran se samozřejmě nedá přečíst za jeden den. Ale dobrý tutoriál vám pomůže naučit se programovat.

Java: Kompletní průvodce (10. vydání)

Skvělá kniha pro ty, kteří se teprve začínají učit Javu. Nejnovější vydání obsahuje všechny funkce verze Java 8.

Kniha obsahuje vše, co potřebujete vědět o programování v jazyce Java, včetně syntaxe, klíčových slov a základů programování, stejně jako knihovnu Java API, aplety Java a další.

Java Philosophy (4. vydání)

Pokud přecházíte na Javu z jiného programovacího jazyka, je tato kniha určena právě vám. Pokud začínáte od nuly, je nejlepší si ji přečíst spolu s druhou.

Java 8. Kapesní průvodce: První pomoc pro programátory Java

Tato kniha obsahuje jasné odpovědi na otázky, které vyvstávají při výuce J ava programování od nuly. Stručně pokrývá všechny základní koncepty Java (včetně Java 9). Nechce se vám listovat stovkami stránek a hledat ten správný řádek? Kupte si tuto knihu.

Místo závěru

Pokud se začnete učit Javu, nemůžete udělat chybu – je to slibný programovací jazyk, plný široké škály možností.

Než se začnete učit Javu, zde je několik tipů:

  • Nečtěte naučné články a příklady jako z románu. Jediný způsob, jak se stát dobrým programátorem, je napsat hodně kódu.
  • Pokud přicházíte z jiného programovacího jazyka (řekněme C#), nemusíte psát kód ve stylu C#.
  • Najděte Java komunity online. Jakmile se naučíte psát jednoduché programy v Javě, najděte oblíbené stránky a fóra věnovaná Javě. Pokuste se vyřešit problémy, které mají jiní programátoři. Je to skvělý způsob, jak rozšířit své vlastní znalosti. Navíc, když se zaseknete, budete vědět, kde požádat o pomoc.

Doufáme, že vás tento článek povzbudí k tomu, abyste se naučili Javu, a pomůže vám začít pracovat na vašich prvních programech.

Tato publikace je překladem článku „ Naučte se programování v Javě. Definitivní průvodce“, připravený přátelským projektovým týmem

Java – jazyk od Sun microsystems. Původně byl vyvinut jako jazyk pro programování elektronických zařízení, ale později se začal používat pro psaní serverových softwarových aplikací. Java programy jsou multiplatformní, to znamená, že mohou běžet na jakémkoli operačním systému.

Základy programování v Javě

Java jako objektově orientovaný jazyk se řídí základními principy OOP:

  • dědictví;
  • polymorfismus;
  • zapouzdření.

V centru Javy, stejně jako v jiných OYA, je objekt a třída s konstruktory a vlastnostmi. Je lepší začít se učit programovací jazyk Java ne z oficiálních zdrojů, ale z příruček pro začátečníky. Tyto příručky podrobně popisují možnosti a poskytují příklady kódu. Knihy jako „Programovací jazyk Java pro začátečníky“ podrobně vysvětlují základní principy a vlastnosti jmenovaného jazyka.

Zvláštnosti

Kód programovacího jazyka Java je přeložen do bajtkódu a poté spuštěn na JVM. Převod na bytecode se provádí v Javac, Jikes, Espresso, GCJ. Existují kompilátory, které překládají jazyk C do bytecode Java. C aplikace tedy může běžet na jakékoli platformě.

Syntaxe Java se vyznačuje následujícím:

  1. Názvy tříd musí začínat velkým písmenem. Pokud se název skládá z několika slov, pak druhé musí začínat velkými písmeny.
  2. Pokud je k vytvoření metody použito více slov, pak druhé z nich musí začínat velkým písmenem.
  3. Zpracování začíná metodou main() – je součástí každého programu.

Typy

Programovací jazyk Java má 8 primitivních typů. Jsou uvedeny níže.

  • Boolean je logický typ, který přijímá pouze dvě hodnoty, true a false.
  • Byte je nejmenší celočíselný typ, měří 1 bajt. Používá se při práci se soubory nebo nezpracovanými binárními daty. Má rozsah od -128 do 127.
  • Short má rozsah od -32768 do 32767 a používá se k reprezentaci čísel. Velikost proměnných tohoto typu je 2 bajty.
  • Int také znamená čísla, ale jeho velikost je 4 bajty. Nejčastěji se používá pro práci s celočíselnými daty a byte a short jsou někdy povýšeny na int.
  • Dlouhé se používají pro velká celá čísla. Možné hodnoty se pohybují od -9223372036854775808 do 9223372036854775807.
  • Float a double se používají k označení zlomkových hodnot. Jejich rozdíl je v tom, že plovák je vhodný, když není vyžadována vysoká přesnost ve zlomkové části čísla.
  • Double zobrazí všechny znaky za oddělovačem ".", zatímco float zobrazí pouze první znaky.
  • Řetězec je nejběžněji používaný primitivní typ používaný k definování řetězců.

Třídy a objekty

Třídy a objekty hrají důležitou roli ve výuce programovacího jazyka Java pro začátečníky.

Třída definuje šablonu pro objekt, nutně má atributy a metody. K jeho vytvoření použijte klíčové slovo Class. Pokud je vytvořen v samostatném souboru, pak název třídy a souboru musí být stejný. Samotný název se skládá ze dvou částí: názvu a přípony.Java.

V Javě můžete vytvořit podtřídu, která zdědí metody rodiče. K tomu se používá slovo extends:

  • třída název_třídy rozšiřuje název_nadtřídy ();

Konstruktor je součástí jakékoli třídy, i když není explicitně specifikován. V tomto případě jej kompilátor vytvoří nezávisle:

  • public class Class( public Class())( ) public Class(String name)( ))

Název konstruktoru je stejný jako název třídy, ve výchozím nastavení má pouze jeden parametr:

  • veřejné štěně (jméno řetězce)

Objekt je vytvořen z třídy pomocí operátoru new():

  • Bod p = nový bod()

Přijímá všechny metody a vlastnosti třídy, s jejichž pomocí interaguje s jinými objekty. Jeden objekt lze použít vícekrát pod různými proměnnými.

    Bod p = nový bod()

    třída TwoPoints (

    public static void main(String args) (

    Bod p1 = nový Bod();

    Bod p2 = nový Bod();

    Objektové proměnné a objekty jsou zcela odlišné entity. Objektové proměnné jsou reference. Mohou ukazovat na jakoukoli proměnnou neprimitivního typu. Na rozdíl od C++ je jejich převod typů přísně regulován.

    Pole a metody

    Pole jsou všechny proměnné spojené s třídou nebo objektem. Ve výchozím nastavení jsou místní a nelze je použít v jiných třídách. Pro přístup k polím použijte operátor „.“:

    • název třídy.proměnná

    Statická pole můžete definovat pomocí klíčového slova static. Taková pole jsou jediným způsobem, jak uložit globální proměnné. To je způsobeno tím, že Java prostě nemá globální proměnné.

    Implementována možnost importu proměnných pro získání přístupu z jiných balíčků:

    • import statického názvu třídy;

    Method je podprogram pro třídy, ve kterých je deklarován. Popsáno na stejné úrovni jako proměnné. Je specifikován jako funkce a může být libovolného typu, včetně void:

    • class Bod(int x, y;

      void init(int a, int b) (

    Ve výše uvedeném příkladu má třída Point celé číslo x a y, metodu init(). K metodám, stejně jako k proměnným, se přistupuje pomocí operátoru ".":

    • Point.init();

    Vlastnost init nic nevrací, takže je typu void.

    Proměnné

    Ve výukovém programu programovacího jazyka Java zaujímají proměnné zvláštní místo. Všechny proměnné mají specifický typ, určuje požadované místo pro uložení hodnot, rozsah možných hodnot a seznam operací. Před manipulací s hodnotami jsou deklarovány proměnné.

    Několik proměnných může být deklarováno současně. K jejich výpisu se používá čárka:

    • int a, b, c;

    K inicializaci dojde po nebo během deklarace:

    int a = 10, b = 10;

    Existuje několik typů:

    • lokální proměnné (lokální);
    • instance proměnné
    • statické proměnné (statické).

    Lokální proměnné jsou deklarovány v metodách a konstruktorech, jsou vytvářeny při jejich spuštění a po dokončení zničeny. U nich je zakázáno specifikovat modifikátory přístupu a kontrolovat úroveň dostupnosti. Nejsou viditelné mimo deklarovaný blok. V Javě nemají proměnné počáteční hodnotu, takže je nutné je před prvním použitím přiřadit.

    Proměnné instance musí být deklarovány uvnitř třídy. Používají se jako metody, ale lze k nim přistupovat až po vytvoření objektu. Proměnná je zničena při zničení objektu. Proměnné instance mají na rozdíl od místních výchozí hodnoty:

    • čísla - 0;
    • logika - nepravda;
    • odkazy jsou nulové.

    Statické proměnné se nazývají třídní proměnné. Jejich názvy začínají velkým písmenem a jsou určeny statickým modifikátorem. Používají se jako konstanty, podle toho se k nim přidá jeden specifikátor ze seznamu:

    • finále;
    • soukromý;
    • veřejnost

    Jsou spuštěny na začátku programu a zničeny po zastavení provádění. Stejně jako proměnné instance mají standardní hodnoty, které jsou přiřazeny prázdným proměnným. Čísla mají hodnotu 0, booleovské proměnné mají hodnotu false a odkazy na objekty mají zpočátku hodnotu null. Statické proměnné se nazývají takto:

    • Název třídy.Název proměnné.

    Popelář

    V tutoriálu "Programovací jazyk Java pro začátečníky" je nejzajímavější část o automatickém shromažďování odpadu.

    V Javě, na rozdíl od jazyka C, není možné ručně odstranit objekt z paměti. Za tímto účelem byla implementována metoda automatického odstraňování - sběrač odpadu. Při tradičním mazání pomocí null je odstraněn pouze odkaz na objekt a samotný objekt je odstraněn. Existují metody, jak vynutit shromažďování odpadu, i když se nedoporučují pro normální práci.

    Modul pro automatické mazání nepoužívaných objektů pracuje na pozadí a spouští se při nečinnosti programu. Pro vymazání objektů z paměti se program zastaví a po uvolnění paměti se obnoví přerušený provoz.

    Modifikátory

    Existují různé typy modifikátorů. Kromě těch, které určují metodu přístupu, existují modifikátory metod, proměnných a tříd. Metody deklarované jako soukromé jsou dostupné pouze v deklarované třídě. Takové proměnné nelze použít v jiných třídách a funkcích. Veřejné umožňuje přístup do jakékoli třídy. Pokud potřebujete získat třídu Public z jiného balíčku, musíte ji nejprve importovat.

    Chráněný modifikátor je podobný jako public – otevírá přístup k polím třídy. V obou případech lze proměnné použít v jiných třídách. Veřejný modifikátor je ale dostupný naprosto každému a chráněný modifikátor je dostupný pouze zděděným třídám.

    Modifikátor, který se používá při vytváření metod, je statický. To znamená, že vytvořená metoda existuje nezávisle na instancích třídy. Modifikátor Final neřídí přístup, ale spíše indikuje nemožnost další manipulace s hodnotami objektu. Zakazuje měnit prvek, pro který je určen.

    Final for fields znemožňuje změnu první hodnoty proměnné:

      public static void mthod(String args) (

      final int Jméno = 1;

      int Name = 2;// vyvolá chybu

    Proměnné s koncovým modifikátorem jsou konstanty. Obvykle jsou psány pouze velkými písmeny. CamelStyle a další metody nefungují.

    Konečná pro metody označuje zákaz změny metody ve zděděné třídě:

      final void myMethod() (

      System.out.printIn(“Ahoj světe”);

    Finální pro třídy znamená, že nemůžete vytvářet potomky tříd:

      závěrečná veřejná třída Třída (

    Abstrakt - modifikátor pro vytváření abstraktních tříd. Jakákoli abstraktní třída a abstraktní metody jsou určeny k dalšímu rozšíření v jiných třídách a blocích. Modifikátor přechodný stav říká virtuálnímu počítači, aby nezpracovával danou proměnnou. V tomto případě to prostě nebude uloženo. Například přechodné int Name = 100 nebude uloženo, ale int b bude uloženo.

    Platformy a verze

    Existující rodiny programovacího jazyka Java:

    • Standardní Edice.
    • Enterprise Edition.
    • Micro Edition.
    • Kartu.

    1. SE je hlavní, široce používaný pro vytváření vlastních aplikací pro individuální použití.
    2. EE je soubor specifikací pro vývoj podnikového softwaru. Obsahuje více funkcí než SE, proto se používá v komerčním měřítku ve velkých a středních podnicích.
    3. ME - určené pro zařízení s omezeným výkonem a pamětí, obvykle mají malou velikost displeje. Takovými zařízeními jsou chytré telefony a PDA, digitální televizní přijímače.
    4. Karta – určená pro zařízení s extrémně omezenými výpočetními zdroji, jako jsou čipové karty, SIM karty, bankomaty. Pro tyto účely byly změněny bajtový kód, požadavky na platformu a komponenty knihovny.

    aplikace

    Programy napsané v programovacím jazyce Java bývají pomalejší a zabírají více paměti RAM. Srovnávací analýza jazyků Java a C ukázala, že C je o něco produktivnější. Po četných změnách a optimalizacích virtuálního stroje Java se zlepšil jeho výkon.

    Aktivně se používá pro aplikace pro Android. Program je zkompilován do nestandardního bajtkódu a spuštěn na virtuálním stroji ART. Pro kompilaci se používá Android Studio. Toto IDE od Google je oficiální pro vývoj pro Android.

    Společnost Microsoft vyvinula vlastní implementaci virtuálního stroje Java MSJVM. Měl rozdíly, které narušovaly základní koncept multiplatformního přístupu – chyběla podpora některých technologií a metod, existovala nestandardní rozšíření, která fungovala pouze na platformě Windows. Microsoft vydal jazyk J#, jehož syntaxe a celkové fungování je velmi podobné Javě. Neodpovídal oficiální specifikaci a nakonec byl odstraněn ze standardní sady Microsoft Visual Studio Developer Toolkit.

    Programovací jazyk Java a prostředí

    Vývoj softwaru se provádí v následujících IDE:

    1. NetBeans IDE.
    2. Eclipse IDE.
    3. IntelliJ IDEA.
    4. JDeveloper.
    5. Java pro iOS.
    6. Geany.

    JDK je distribuován společností Oracle jako vývojová sada Java. Zahrnuje kompilátor, standardní knihovny, nástroje a výkonný systém. Moderní integrovaná vývojová prostředí spoléhají na JDK.

    Je vhodné psát kód v programovacím jazyce Java v Netbeans a Eclipse IDE. Jedná se o bezplatná integrovaná vývojová prostředí, jsou vhodná pro všechny platformy Java. Používá se také pro programování v Pythonu, PHP, JavaScript, C++.

    IntelliJ IDE od Jetbrains je distribuováno ve dvou verzích: bezplatné a komerční. Podporuje psaní kódu v mnoha programovacích jazycích; existují pluginy třetích stran od vývojářů, které implementují ještě více jazyků.

    JDeveloper je další vývoj od společnosti Oracle. Kompletně napsaný v Javě, takže funguje na všech operačních systémech.

Java je programovací jazyk vyvinutý společností SunMicrosystems. Java aplikace jsou obvykle kompilovány do vlastního bajtkódu, takže mohou běžet na jakémkoli virtuálním stroji Java (JVM) bez ohledu na architekturu počítače. Oficiální datum vydání: 23. května 1995. Technologie Java dnes poskytuje nástroje pro přeměnu statických webových stránek na interaktivní, dynamické dokumenty a pro vytváření distribuovaných aplikací nezávislých na platformě.

Java programy jsou překládány do bajtkódu, který je spouštěn Java Virtual Machine (JVM), programem, který zpracovává bajtový kód a předává instrukce hardwaru jako interpret.

Výhodou tohoto způsobu spouštění programů je naprostá nezávislost bajtkódu na operačním systému a hardwaru, což umožňuje spouštět Java aplikace na jakémkoli zařízení, pro které existuje odpovídající virtuální stroj. Dalším důležitým rysem technologie Java je její flexibilní bezpečnostní systém díky skutečnosti, že provádění programu je zcela řízeno virtuálním strojem. Jakákoli operace, která překračuje stanovená oprávnění programu (například pokus o neoprávněný přístup k datům nebo připojení k jinému počítači), způsobí okamžité přerušení.

Mezi nevýhody konceptu virtuálního stroje často patří skutečnost, že provádění bajtkódu virtuálním strojem může snížit výkon programu algoritmů implementovaných v jazyce Java. Nedávno byla provedena řada vylepšení, která mírně zvýšila rychlost provádění programů Java:

Aplikace technologie pro převod bajtového kódu do strojového kódu přímo za běhu programu (technologie JIT) s možností ukládat verze tříd ve strojovém kódu,

Široké použití platformově orientovaného kódu (nativního kódu) ve standardních knihovnách,

Hardware, který poskytuje zrychlené zpracování bajtového kódu (například technologie Jazelle podporovaná některými procesory ARM).



Klíčové jazykové vlastnosti:

Automatická správa paměti;

Rozšířené možnosti pro řešení výjimečných situací;

Bohatá sada nástrojů pro filtrování I/O;

Sada standardních kolekcí, jako je pole, seznam, zásobník atd.;

Dostupnost jednoduchých nástrojů pro tvorbu síťových aplikací (včetně použití protokolu RMI);

Dostupnost tříd, které vám umožňují vytvářet požadavky HTTP a zpracovávat odpovědi;

Vestavěné jazykové nástroje pro vytváření vícevláknových aplikací;

Jednotný přístup k databázím:

Na úrovni jednotlivých SQL dotazů - na bázi JDBC, SQLJ;

Na úrovni konceptu objektů, které mají schopnost být uloženy v databázi - na základě Java Data Objects a Java Persistence API;

Podpora šablon (od verze 1.5);

Paralelní provádění programů.

1.4.3 Programovací jazyk C#

V červnu 2000 se vešlo ve známost o novém programovacím jazyce zrozeném v hlubinách Microsoftu. Stala se součástí nové technologie společnosti Microsoft s názvem .NET (čti „Dot Net“). Tato technologie poskytuje jednotné spouštěcí prostředí pro programy (Common Language Runtime, CLR) napsané v různých programovacích jazycích. Jedním z těchto jazyků, hlavním v tomto prostředí, je C# (C#, čtěte „C sharp“). Název jazyka chtěl samozřejmě zdůraznit jeho příbuznost s C++, protože # jsou dva protínající se plusy. Ale hlavně je nový jazyk podobný Javě. A není pochyb, že jedním z důvodů jeho vzhledu byla touha Microsoftu odpovědět na výzvu Sunu.

Ačkoli autoři C# nejsou oficiálně jmenováni, na titulní stránce jednoho z předběžných vydání jazykové reference je uveden Anders Hejlsberg, tvůrce Turbo Pascalu a Delphi, který přešel do Microsoftu v roce 1996, a Scott Wiltamuth.

Jednotné prostředí pro provádění programů je založeno na použití mezijazyka IL (Intermediate Language), který hraje téměř stejnou roli jako bytecode virtuálního stroje Java. Kompilátory používané v rámci technologie .NET z různých jazyků překládají programy do kódu IL. Podobně jako bajtový kód Java představuje IL kód instrukce na hypotetickém počítači založeném na zásobníku. Rozdíl je ale také v konstrukci a použití IL.

Za prvé, na rozdíl od JVM není IL vázán na jediný programovací jazyk. Předběžné verze Microsoft.NET obsahují kompilátory pro C++, C# a Visual Basic. Nezávislí vývojáři mohou přidat další jazyky vytvořením kompilátorů z těchto jazyků do kódu IL.

Za druhé, IL není určen pro interpretaci programu, ale pro následnou kompilaci do strojového kódu. To umožňuje dosáhnout výrazně vyššího výkonu programu. Soubory obsahující kód IL obsahují dostatek informací, aby optimalizační kompilátor fungoval.

„C# je jednoduchý, moderní, objektově orientovaný, typově bezpečný jazyk pocházející z C a C++. C# bude pohodlné a srozumitelné pro programátory, kteří znají C a C++. C# kombinuje produktivitu jazyka Visual Basic se silou C++." Těmito slovy začíná popis C#.

Podívejme se na technické vlastnosti jazyka:

Jednotkou kompilace je soubor (jako v C, C++, Java). Soubor může obsahovat jeden nebo více popisů typů: třídy (třída), rozhraní (rozhraní), struktury (struct), výčty (enum), typy delegátů (delegát) s (nebo bez) uvedením jejich distribuce napříč jmennými prostory;

Jmenné prostory regulují viditelnost programových objektů (jako v C++). Jmenné prostory lze vnořovat. Je povoleno používat programové objekty bez explicitního určení jmenného prostoru, do kterého tento objekt patří. Stačí obecná zmínka o použití tohoto jmenného prostoru v direktivě using (jako v Turbo Pascalu). V direktivě using jsou aliasy pro názvy jmenných prostorů (jako v jazyce Oberon);

Základní datové typy: 8bitové (sbyte, byte), 16bitové (short, ushort), 32bitové (int, uint) a 64bitové (long, ulong) celá čísla se znaménkem a bez znaménka, float ) a dvojitá přesnost, Unicode znaky (char), booleovský typ (bool, není kompatibilní s celými čísly), desítkový typ poskytující přesnost 28 platných číslic (desetinné);

Strukturované typy: třídy a rozhraní (jako v Javě), jednorozměrná a vícerozměrná (na rozdíl od Javy) pole, řetězce, struktury (téměř stejné jako třídy, ale nejsou alokovány na hromadě a bez dědičnosti), výčty, nekompatibilní s celými čísly ( jako v Pascalu);

Typy delegování nebo jednoduše „delegáty“ (podobně jako procedurální typy v Modula-2 a Oberon, ukazatele funkcí v C a C++);

Typy se dělí na referenční typy (třídy, rozhraní, pole, delegáti) a hodnotové typy (elementární typy, výčty, struktury). Objekty referenčních typů jsou umístěny v dynamické paměti (haldě) a proměnné referenčních typů jsou ve skutečnosti ukazateli na tyto objekty. U typů hodnot nejsou proměnné ukazatele, ale hodnoty samotné. Implicitní konverze typu jsou povoleny pouze v případě, že nenarušují bezpečnost typu nebo nevedou ke ztrátě informací. Všechny typy, včetně primitivních typů, jsou kompatibilní s typem objektu, který je základní třídou všech ostatních typů. Existuje implicitní převod hodnotových typů na typ objektu, nazývaný boxing, a explicitní zpětný převod - unboxing;

Automatický sběr odpadu (jako v Oberonu a Javě);

Rozsáhlá sada operací se 14 úrovněmi priority. Předefinování operací (jako v ALGOL-68, Ada, C++). Zaškrtnuté a nezaškrtnuté operátory lze použít k ovládání řízení přetečení při provádění operací s celými čísly;

Metody s hodnotovými parametry, referenčními parametry (ref) a výstupními parametry (out). Slova ref a out je nutné zapsat před parametr nejen v popisu metody, ale i při volání. Přítomnost výstupních parametrů umožňuje řídit provádění definujících přiřazení. Podle pravidel jazyka musí být každá proměnná zaručena, že má hodnotu, než se ji pokusí použít;

Řídicí příkazy: if, switch, while, do, for, break, continue (jako v C, C++ a Java). Příkaz foreach, který prochází každým prvkem „kolekce“, několik variant operátoru goto;

Zpracování výjimek (jako v Javě);

Vlastnosti jsou prvky tříd (objektů), ke kterým se přistupuje stejným způsobem jako k polím (můžete přiřadit nebo získat hodnotu), ale jsou implementovány implicitně nazývanými rutinami get a set (jako v Object Pascal, vstupním jazyce Delphi Systém);

Indexery jsou prvky tříd (objektů), které umožňují přistupovat k objektům stejným způsobem jako k polím (uvedením indexu v hranatých závorkách). Implementováno implicitně volanými rutinami get a set. Například ke znakům v řetězci lze přistupovat (číst) jako by to byly prvky pole díky skutečnosti, že standardní třída řetězců má implementován indexer;

Události jsou prvky tříd (pole nebo vlastnosti) procedurálního typu (delegáty), na které se mimo třídu, kde jsou definovány, vztahují pouze operace += a –=, které umožňují přidávat nebo odebírat metody obsluhy událostí pro předměty této třídy;

Nebezpečný kód, který používá ukazatele a aritmetiku adres, je lokalizován v částech programu označených modifikátorem unsafe;

Preprocesor, který na rozdíl od C a C++ poskytuje pouze nástroje podmíněné kompilace.

Diskutované nevýhody C# samozřejmě jazyk vůbec nepřipravují o jeho vyhlídky. V mnoha ohledech je výhodnější než C++. Obecná nespokojenost s jazykem C++, jehož rozpoznáním je samotný vzhled nového jazyka, je jedním z hlavních předpokladů úspěchu C#.

Při porovnání C# s Javou můžete vidět mnoho podobností. Je pravda, že pokud jsou systémy Java multiplatformní, pak implementace C# existuje pouze pro operační systém Windows a pouze jeden. Ale i přes náročnost můžeme očekávat, že jazyk bude implementován i pro jiné systémy. Samotnou platformu Microsoft .NET s jednotným prostředím pro provádění programů lze navíc rozšířit na alternativní architektury, především na systémy UNIX.

C# se zdá být realističtější jazyk než Java. Na rozdíl od Javy je soběstačný. To znamená, že můžete napsat jakýkoli program v C#, aniž byste se uchýlili k jiným jazykům. To je možné díky přítomnosti „nebezpečných“ kódových bloků, které poskytují přístup přímo k hardwaru. V Javě musí přístup k nízkoúrovňovým funkcím využívat nativní metody, které musí být naprogramovány v jiných jazycích.

A vyhlídky C# samozřejmě primárně souvisí s úsilím, které Microsoft samozřejmě vynaloží na jeho propagaci.

Stručný kurz historie jazyka Java

Tato část stručně popisuje historii jazyka Java. Tato sekce je založena na různých publikovaných materiálech (většinou rozhovory s tvůrci jazyka Java v červencovém vydání SunWorld z roku 1995).

Historie Javy sahá do roku 1991, kdy se skupina inženýrů ve společnosti Sun, vedená Patrickem Naughtonem a členem představenstva (a všestranným počítačovým kouzelníkem) Jamesem Goslingem, rozhodla vyvinout malý jazyk, který by bylo možné použít k programování běžných zařízení. , například ovladače pro přepínání kanálů kabelové televize (rozvaděče kabelové televize).

Protože taková zařízení nespotřebovávají moc energie a nemají velké paměťové čipy, musel jsem být malý a generovat velmi kompaktní programy. Navíc, protože různí výrobci si mohou vybrat různé centrální procesorové jednotky (CPU), bylo důležité nezabřednout do žádné architektury počítače. Projekt dostal kódové označení „Green“.

Ve snaze vymyslet malý, kompaktní a na stroji nezávislý kód vývojáři oživili model používaný k implementaci prvních verzí jazyka Pascal na úsvitu éry osobních počítačů. Niklaus Wirth, tvůrce jazyka Pascal, kdysi vyvinul strojově nezávislý jazyk, který generuje mezikód pro určitý hypotetický stroj. Tento jazyk se stal komerčním produktem pod názvem UCSD Pascal. (Takovéto hypotetické stroje se často nazývají virtuální stroje – například virtuální stroj Java nebo JVM.)
Tento mezikód lze spustit na jakémkoli počítači, který má vhodný interpret. Inženýři pracující na projektu Green také použili virtuální stroj, který vyřešil jejich hlavní problém.

Většina zaměstnanců Sunu však měla zkušenosti s operačním systémem UNIX, takže jazyk, který vyvinuli, byl založen na C++, nikoli na Pascalu. Zejména učinili jazyk objektově orientovaným spíše než procedurálně orientovaným.

Jak řekl Gosling ve svém rozhovoru: " Jazyk je vždy prostředkem, nikoli cílem„Nejprve se Gosling rozhodl tomu říkat „Dub.“ (Možná proto, že se rád díval na dub rostoucí přímo za okny své kanceláře v Sunu.) Pak se zaměstnanci Sun dozvěděli, že slovo Oak se již používá jako název dříve vytvořeného programovacího jazyka a změnil název Java.

V roce 1992 byly vydány první produkty v rámci projektu Green, tzv
"*7". Byl to prostředek pro extrémně inteligentní dálkové ovládání. (Měl výkon jako pracovní stanice SPARK, ale vešel se do krabice 6x4x4 palce.) Bohužel o tento vynález neměly zájem žádné elektronické firmy.

Skupina poté začala vyvíjet zařízení kabelové televize, které by mohlo poskytovat nové typy služeb, jako je video na vyžádání. A opět nedostali jedinou smlouvu. (Je legrační, že jednu ze společností, které s nimi odmítly podepsat smlouvu, vedl Jim Clark, zakladatel Netscape, který později udělal hodně pro úspěch jazyka Java.)

Po celý rok 1993 a polovinu roku 1994 pokračovalo neúspěšné hledání odběratelů produktů vyvinutých v rámci projektu Green (pod novým názvem „First Person, as“). (Patrick Naughton, jeden ze zakladatelů skupiny, který později pracoval především v marketingu, nalétal celkem více než 300 000 mil ve snaze prodat technologii.) First Person, Inc. byla ukončena v roce 1994.

Mezitím World Wide Web rostl v rámci internetu. Klíčem k této síti je prohlížeč, který promění hypertext na obrázek na obrazovce.
V roce 1994 většina lidí používala prohlížeč Mosaic, neziskový webový prohlížeč vyvinutý na University of Illinois Supercomputing Center v roce 1993. (Tento prohlížeč zčásti napsal Mark Andreessen za 6,85 dolaru na hodinu. Mark v té době končil univerzitu a prohlížeč byl jeho diplomovou prací. Poté se stal jedním ze zakladatelů a hlavním programátorem Netscape a sláva se mu dostala bohatství.)

V rozhovoru pro časopis Sun World Gosling řekl, že v polovině roku 1994 si vývojáři jazyka uvědomili: "Potřebujeme vytvořit opravdu skvělý prohlížeč. Tento prohlížeč by měl být jednou z mála aplikací efektní technologie klient-server, kde přesně co je zásadní by bylo "To, co jsme udělali, bylo: architektonická nezávislost, provádění v reálném čase, spolehlivost, bezpečnost - problémy, které nebyly pro pracovní stanice příliš důležité. A vytvořili jsme takový prohlížeč."

Ve skutečnosti prohlížeč vyvinuli Patrick Naughton a Jonathan Payne. Později se vyvinul v moderní prohlížeč HotJava. Tento prohlížeč byl napsán v Javě, aby demonstroval svou plnou sílu. Vývojáři však nezapomněli na výkonné nástroje, které se nyní nazývají applety, které umožňují jejich prohlížeči spouštět kód na webových stránkách. „Technologické demo“ bylo představeno na Sun World '95 23. května 1995 a vyvolalo šílenství v Javě, které trvá dodnes.

Sun vydal první verzi jazyka Java na začátku roku 1996. Pár měsíců po něm se objevila Java verze 1.02. Lidé si rychle uvědomili, že Java 1.02 není vhodná pro vývoj seriózních aplikací. Tuto verzi lze samozřejmě použít k vývoji webových stránek s tančícími muži, ale v Javě 1.02 nelze ani nic vytisknout.

Abych byl upřímný, Java 1.02 byla ještě surová. Její nástupce, Java 1.1, zaplnil většinu zející díry, výrazně zlepšil schopnosti odrazu a přidal nový model událostí pro programování GUI. Navzdory tomu to bylo stále dost omezené.

Vydání Java 1.2 bylo hlavní zprávou na konferenci JavaOne v roce 1998. Nová verze nahrazuje slabé nástroje pro tvorbu grafických uživatelských rozhraní a grafických aplikací komplexními a rozsáhlými nástroji. Byl to krok kupředu k implementaci sloganu „Write Once, Run Anywhere“™, který byl navržen během vývoje předchozích verzí.

V prosinci 1998, tři dny (!) po vydání, byl název nové verze změněn na těžkopádnou frázi Java 2 Standard Edition Software Development Kit Version 1.2 (Standardní edice balíku nástrojů pro vývoj softwaru v jazyce Java 2 , verze 1.2).

Kromě standardní edice balíčku („Standard Edition“) byly nabízeny další dvě možnosti: „micro edition“ („Micro Edition“) pro přenosná zařízení, například pro mobilní telefony atd. "Industrial Edition" ("Enterprise Edition") pro vytváření serverových aplikací. Naše kniha se zaměřuje na standardní vydání.

Verze 1.3 a 1.4 standardní edice sady nástrojů jsou mnohem pokročilejší než původní vydání jazyka Java 2. Mají nové funkce a samozřejmě obsahují mnohem méně chyb. V tabulce Obrázek 1 1 ukazuje rychlý růst knihovny API s tím, jak jsou k dispozici nové verze standardní edice SDK.

Tabulka 1.1. Růst knihovny API z balíčku Java Standard Edition

Počet tříd a rozhraní

Počet metod a polí

Běžné mylné představy o jazyce Java

Tato část uvádí a komentuje některé běžné mylné představy o Javě.

Jazyk Java je rozšířením jazyka HTML.

Java je programovací jazyk a HTML je způsob popisu struktury webových stránek. Není mezi nimi nic společného, ​​s výjimkou rozšíření jazyka HTML, která umožňují umístit na webové stránky applety napsané v Javě.

Pracuji v XML, takže nepotřebuji Javu.

Java je programovací jazyk a XML je jednoduše způsob, jak popsat data. Data popsaná pomocí XML mohou být zpracována programy napsanými v libovolném programovacím jazyce, ale pouze knihovna Java API poskytuje vynikající podporu pro zpracování takových dat. Kromě toho Java implementuje mnoho funkcí XML. Podrobněji jsou popsány ve druhém díle.

Jazyk Java je snadné se naučit.

Neexistuje žádný tak výkonný programovací jazyk jako Java, který by se dal snadno naučit. Je snadné psát programy na hraní, ale dělat seriózní práci je vždy obtížné. Všimněte si také, že tato kniha věnuje pouze čtyři kapitoly diskuzi o samotném jazyce Java. Ve zbývajících kapitolách je vysvětleno, jak pracovat s jeho knihovnami, které obsahují tisíce tříd a rozhraní a také mnoho tisíc funkcí. Naštěstí nemusíte znát každou z nich, ale udělat skutečný projekt vyžaduje od uživatele překvapivé množství znalostí.

Java se snadno programuje.

Java SDK není snadné používat pro nikoho kromě programátorů zvyklých na příkazový řádek. Existují integrovaná programovací prostředí, která zahrnují textové editory, kompilátory a nástroje pro vytváření formulářů přetažením, ale pro začátečníka se zdají příliš složitá a zastrašující. Navíc často generují programy sestávající ze stovek řádků. Zdá se nám, že začít se učit jazyk Java pomocí dlouhých programů, automaticky generovaných a naplněných komentáři typu „NEDOTÝKEJ SE SVÝCH RUCÍ!“ není moc dobrý nápad. Věříme, že nejlepší způsob, jak se naučit Javu, je používat svůj oblíbený textový editor. To je přesně to, co uděláme.

Jazyk Java se časem stane univerzálním programovacím jazykem pro všechny platformy.

Teoreticky to možné je. O tom sní všichni výrobci softwaru, kromě Microsoftu. Existuje však mnoho aplikací, které fungují skvěle na osobních počítačích a které nebudou fungovat tak dobře na jiných zařízeních nebo prohlížečích. Tyto aplikace jsou navíc napsány tak, aby maximálně využívaly procesory a knihovny závislé na počítači. V každém případě již byly portovány na všechny důležité platformy. Mezi takové aplikace patří textové a grafické editory a také webové prohlížeče. Obvykle jsou tyto aplikace napsány v C nebo C++ a jejich přepsáním v Javě uživatel nic nezíská. Navíc jejich přepsání v Javě způsobí, že tyto programy budou pomalejší a méně efektivní, alespoň v blízké budoucnosti.

Jazyk Java je jen další programovací jazyk.

Java je úžasný programovací jazyk. Mnoho programátorů mu dává přednost před jazyky C nebo C++. Po celém světě však existují stovky skvělých programovacích jazyků, které nikdy nedosáhly širokého přijetí, zatímco jazyky se zjevnými nedostatky, jako je C++ a Visual Basic, dosáhly ohromujícího úspěchu.

Proč? Úspěch jakéhokoli programovacího jazyka je určen především praktičností jeho podpůrného systému spíše než elegancí jeho syntaxe. Existují užitečné, pohodlné a standardní knihovny, které vám umožní dělat přesně to, co programátor potřebuje? Bylo vyvinuto vhodné prostředí pro vytváření a ladění programů? Jsou jazyk a jeho nástroje integrovány do počítačové infrastruktury? Jazyk Java udělal pokroky v serverových aplikacích, protože jeho knihovny tříd usnadňují dělat věci, které byly dříve obtížné, jako je vytváření sítí a multithreading. V její prospěch je i fakt, že Java snížila počet chyb v ukazateli. Díky tomu se zvýšila produktivita programátorů. To však není důvod jeho úspěchu.

Java programy jsou interpretovány, což znamená, že seriózní aplikace poběží na konkrétní platformě příliš pomalu.

Mnoho programů tráví většinu času interakcí s uživatelským rozhraním nebo čekáním na data ze sítě. Všechny programy, bez ohledu na to, v jakém jazyce jsou napsány, musí reagovat na kliknutí myší do určité doby. Samozřejmě byste neměli provádět úlohy náročné na CPU pomocí interpretu Java. Na platformách, které umožňují synchronní kompilaci, však stačí spustit bajtové kódy pro spuštění a většina problémů jednoduše zmizí.

Koneckonců, Java je skvělá pro vývoj síťových programů. Zkušenosti ukazují, že snadno udržuje vysoké přenosové rychlosti sítě i při intenzivních výpočtech, jako je šifrování. Protože Java je rychlejší než rychlost internetu, nezáleží na tom, že programy C++ mohou běžet ještě rychleji. Java se snadněji programuje a programy v ní napsané jsou na stroji nezávislé.

Všechny Java programy běží pod webovými prohlížeči.

Všechny applety napsané v Javě skutečně běží pod kontrolou webových prohlížečů. Ve skutečnosti je to definice appletu - programu spouštěného webovým prohlížečem. Je však zcela možné a vhodné vytvářet samostatné Java programy, které běží nezávisle na webovém prohlížeči.

Tyto programy (obvykle nazývané aplikace) jsou zcela nezávislé na počítači. Stačí vzít program a spustit jej na jiném počítači! Protože je Java uživatelsky přívětivější a méně náchylná k chybám než C++, je to dobrá volba. V kombinaci s nástroji pro přístup k databázi, jako je balíček Java Database Connectivity, se jazyk Java stává neodolatelným. Je obzvláště vhodné se jej naučit jako první programovací jazyk.
Většina programů v této knize je zcela soběstačná. Aplety jsou samozřejmě velmi zábavné. V praxi jsou však důležitější a užitečnější Java aplikace.

Java applety představují velkou hrozbu pro bezpečnostní systémy.

Několik zpráv o bezpečnostních chybách bylo publikováno v jazyce Java. Většina z nich se týkala implementace jazyka Java pomocí konkrétního prohlížeče. Výzkumníci to vzali jako výzvu a začali hledat bezpečnostní mezery v jazyce Java, aby překonali sílu a složitost bezpečnostního modelu apletu. Zjištěné technické chyby byly brzy opraveny a pokud víme, žádný skutečný systém nebyl nikdy ohrožen. Abychom ocenili důležitost této skutečnosti, vzpomeňte si na miliony virů ve spustitelných souborech operačního systému Windows a makra textových procesorů, které skutečně způsobily mnoho problémů, a na překvapivě bezzubou kritiku slabin napadené platformy. Mechanismus ActiveX v prohlížeči Internet Explorer by navíc mohl způsobit spoustu kritiky, ale způsoby jeho hackování jsou tak zřejmé, že se jen málo odborníků obtěžovalo zveřejnit svůj výzkum.

Někteří správci systému dokonce začali vypínat ochranu jazyka Java ve svých prohlížečích, aby uživatelé mohli nadále stahovat spustitelné soubory, ovládací prvky ActiveX a dokumenty vytvořené pomocí textového editoru Word. Je úsměvné, že v současnosti je pravděpodobnost překonání bezpečnostního systému Java appletů srovnatelná s pravděpodobností úmrtí při letecké havárii, zatímco riziko infikování počítače otevřením dokumentu vytvořeného textovým procesorem Word je srovnatelné s rizikem úmrtí pod koly auta při běhu přes silnici v hodinové špičce.

Jazyk JavaScript je zjednodušená verze jazyka Java.

JavaScript je skriptovací jazyk, který lze použít na webových stránkách. Byl vyvinut společností Netscape a nejprve se jmenoval LiveScript. Syntaxe jazyka JavaScript je podobná syntaxi jazyka Java, ale tím podobnosti končí (samozřejmě kromě názvu). Podmnožina jazyka JavaScript byla standardizována pod názvem ECMA-262, ale jeho rozšíření potřebná pro skutečnou práci standardizována nebyla.