Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle



Podobné dokumenty
Algoritmizace. Cíle předmětu

11. Přehled prog. jazyků

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Matematika v programovacích

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Úvod do programování v jazyce Java

3. Základy programovacího jazyka Java

2 Postup při programování, úvod do programovacího jazyka Java

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Program. Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programování 1 - Java

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Studijní zdroje. Studijní zdroje. Studijní zdroje. Podmínky ukončení předmětu. Vlastnosti a použití jazyka Java. Semestrální projekt

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Vývojové nástroje jazyka Java

1. Programování proti rozhraní

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Algoritmizace a programování

Programovací jazyky Přehled a vývoj

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Algoritmizace a programování

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

IB111 Programování a algoritmizace. Programovací jazyky

Úvod do programování v jazyce Java

Překladač a jeho struktura

Seznámení s prostředím dot.net Framework

Úvod. Programovací paradigmata

Z. Kotala, P. Toman: Java ( Obsah )

Základy programovaní 3 (Java)

Profilová část maturitní zkoušky 2017/2018

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Technologie Java. Jaroslav Žáček

7. Datové typy v Javě

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

ČÁST 1. Základy 32bitového programování ve Windows

TÉMATICKÝ OKRUH Softwarové inženýrství

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Abstraktní datové typy: zásobník

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Seminář Java II p.1/43

Západočeská univerzita Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

VIRTUALIZACE POČÍTAČE HISTORIE A VÝVOJ

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Paměť počítače. alg2 1

IB111 Úvod do programování skrze Python Přednáška 13

Programování v Javě I. Únor 2009


InterSystems Caché Post-Relational Database

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

PB161 Programování v jazyce C++ Přednáška 7

8 Třídy, objekty, metody, předávání argumentů metod

PB161 Programování v jazyce C++ Přednáška 7

Obsah. Kapitola 1. Kapitola 2

Common Object Request Broker Architecture

Aplikace s grafickým uživatelským rozhraním

První kroky s METEL IEC IDE

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Programování v Javě I. Leden 2008

Objektově orientované programování v jazyce Python

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Algoritmizace- úvod. Ing. Tomáš Otáhal

Objektově orientované programování v jazyce Python

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

EVOLUCE VÝVOJE SOFTWARE V PROSTŘEDÍ MICROSTATION

Softwarové komponenty a Internet

10 Balíčky, grafické znázornění tříd, základy zapozdření

Část 1 Organizace předmětu. Základní pojmy. Část 2 Programování a výpočty. Část 3 Programovací jazyk Java

Výčtový typ strana 67

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Novinky ve Visual Studio Tomáš Kroupa

Paralelní programování

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Vytváření uživatelských datových typů a funkcí v Javě

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Úvod do programování - Java. Cvičení č.4

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Inteligentní řízení strojů s portfoliem u-mation Řešení pro automatizaci a digitalizaci Let s connect. Automatizace a digitalizace

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

O Apache Derby detailněji. Hynek Mlnařík

Slajdy k přednáškám předmětu. KIV/PPA1. Arnoštka Netrvalová

Vývoj OS Windows Mobile. Ing. Jiří Šilhán

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

Generické programování

Transkript:

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle Významné zdroje ze stovek/tisíců dostupných http:// java.sun.com Java http://dione.zcu.cz/java výborný rozcestník Historie původně Oak (1990) programovací jazyk Sun pro spotřební elektroniku (embeded software) čipy se často mění, je jich mnoho druhů, software musí být spolehlivý, pokud možno interpretovaný zlom 1993, kdy proráží WWW, na němž je potřeba jazyka nezávislého na architektuře WWW prohlížeč HotJava, který umí applety ( podprogramy pro HTML ) statické HTML má dynamické možnosti, které nezáleží na architektuře Sun si uvědomuje zbraň proti Microsoftu a nalézá nadšené spojence, dává zdarma základní vývojové nástroje (JDK) pro nejpoužívanější platformy v květnu roku 1995 byla Java firmou Sun oficiálně představena Netscape od 2.0 podporuje applety od 1996 prožívá Java neuvěřitelný rozvoj giganti IBM, SGI, Oracle a Microsoft (v pořadí nákupů) kupují licence na Javu všechny významné firmy s vývojovými prostředky intenzivně připravují vývojové prostředí je to nejen jazyk pro přímé použití na WWW, tj. aplety, ale naprosto plnohodnotný programovací jazyk pro samostatné aplikace napiš a přelož program jednou včetně GUI a spusť bez dalších překladů a akcí na libovolné platformě (procesor + OS) úděsná představa pro MS Java 1 1

Zkratky API Application Programming Interface Java Core API JDK Java Development Kit, SDK JIT Just-In-Time JVM Java Virtual Machine (interpreter Javy a prostředí run-time) RAD Rapid Application Development GUI Graphical User Interface AWT Abstract Windowing Toolkit JFC Java Foundation Clases Swing modernější knihovny pro GUI Charakteristika jazyka dle Sun The Java Language: A White Paper (viz dione) Jednoduchý málo jazykových konstrukcí, ideální pro přechod z C základ je vykuchané C a C++, ze kterých vzali osvědčené věci a ty rozvinuli a ubrali problematické (např. ukazatele z C a vícenásobnou dědičnost z C++) Objektově orientovaný OOP je jedním z osvědčených směrů v programování s mnoha výhodami, např. reusable zvovuvyužitelnost SW, kdy Java má v systému standardních balíků již vše hotovo a stačí to jen použít Java je objektová již od počátku vyvarovala se problémů C++ Interpretovaný překlad je do bajtového kódu (byte code), nedochází k sestavování to umožňuje nezávislost na architektuře a současně i ochranu zdrojového kódu Robustní původně navržena pro tvorbu vysoce spolehlivého SW silně typovaný neexistují ukazatele a o správu paměti se stará interpret sám (statistiky říkají, že toto zjednodušení vede až k 50% redukci výskytu chyb běžných při použití tradičních OOP jazyků) rozsáhlá kontrola chyb jak při kompilaci, tak i při vlastním běhu programu, např. mezí polí, prázdných odkazů Java 1 2

systém zpracování výjimek, kdy je ošetření chyb v jednom místě programu systém balíků (package) podporuje velké projekty knihovny a aplikace v JAR Přizpůsobený národním zvláštnostem abecedy neanglických jazyků jsou podporovány pomocí znakové sady Unicode lokalizace součástí knihoven Distribuovaný všemožně podporuje aplikace v sítích vestavěná podpora protokolu TCP/IP Bezpečný filosofie interpretu umožňuje provést před spuštěním množství kontrol a zabraňuje znalosti paměťové mapy, použitelné jako vstupní brána Vysoce výkonný v počátcích (1996) byla interpretovaná Java z JDK 20krát pomalejší, než kompilované C JIT kompilátory v době zavádění přeloží bajtový kód do strojového kódu platformy (v návrhu bajtového kódu s tím bylo počítáno, takže je to efektivní) dle Sun se pak rychlost vyrovná C++ Hot-spot optimalizace za běhu Java kompilátory překlad bajtového kódu do.exe souboru ztráta přenositelnosti, ale nepotřebuje interpret Přenosný explicitně určuje velikost všech primitivních datových typů hardwarové rozdíly zastřešuje tzv. Java Platforma, která obsahuje dvě základní části: Abstraktní počítač JVM, který sestává z runtime systému, což je část realizující vazbu na hardware, a interpretu, který vykonává bytový kód Aplikační programové rozhraní (Java Core API) - což jsou základní knihovny pro psaní programů. Výhodou je, že tyto knihovny nemusí být s programem distribuovány, neboť jsou součástí Java Platformy. Java 1 3

Víceprocesní vestavěnou jazykovou podporou plně podporuje multithreading (=multitasking) více vláken (light-weigth procesy), tj. paralelní běh částí programu a jejich synchronizaci Dynamický lze využívat části, které jsou kdekoliv jinde a při jejich změně se s původním programem nemusí vůbec nic dělat tyto části jsou dynamicky linkovány za běhu programu Dokumentovaný do praktické použitelnosti dotažena idea automatické generace dokumentace z kódu jen knihovny mají 220 MB dokumentace Java Tutorial Podpora GUI od počátku knihovna Swing GUI vypadá na všech platformách stejně tato výhoda se ukázala jako nevýhoda Java neprorazila na desktopech Evoluce Javy JDK 1.0.2 původní verze Javy z 1995 JDK 1.1.8 proti JDK 1.0 došlo ke změnám jazyka a k podstatným změnám (zejména rozšíření) API. od této verze je stabilní jazyk (1997) JDK 1.2.2 podstatnou změnou bylo zahrnutí některých nových knihoven (např. JFC Swing) jako součásti JDK. JDK 1.3.0 změnou proti JDK 1.2. je zrychlení části API. Změny v jazyce nenastaly žádné, změny v API jsou pouze rozšíření a vylepšení JDK 1.4.0 výrazné zrychlení, v API jsou pouze rozšíření a vylepšení JDK 1.5.0 značné doplnění jazyka (C#) o generické typy (Java2, Tiger) JDK 1.6.18 současná verze (Java 6) Java 1 4

Existují tři distribuční verze SE Standard Edition běžné použití ME Micro Edition použití v malých zařízeních (úsporná ořezaná verze) EE Enterprise Edition použití pro velké informační systémy (rozšířená verze) Jak javu nainstalovat Ukázka práce v moderním RAD Java 1 5

1.4.2. Implementace programovacích jazyků Dvě základní metody: interpretační větší přenositelnost programů, ale menší rychlost, syntaktické chyby odhaleny až při spuštění kompilační nulová přenositelnost mezi platformami, větší rychlost, syntaktické chyby odhaleny při překladu (platforma = procesor + operační systém) obě metody se dají kombinovat 1.5.ÚvoddojazykaJava jazyk Java je příkladem kombinace kompilační a interpretační metody program je tvořen jedním nebo několika zdrojovými soubory s příponou.java zdrojové soubory se přeloží překladačem javac(v terminologii firmy Sun je to kompilátor) do vnitřní formy(byte code, bajt-kód), která je platformově nezávislá překladem souboru Jmeno.java vznikne soubor s názvem Jmeno.class Přednášky KIV/PPA1, Pavel Herout, 2009 9

interpretaci vnitřní formy provede program java(jvm Java Virtual Machine) program obvykle využívá řadu knihoven(java Core API Application Programming Interface), které je třeba mít k dispozici jak při překladu, tak při interpretaci JVM+JavaCoreAPI=Javaplatforma rychlost interpretované Javy a kompilovaného jazyka(např. C) je srovnatelná technologie JIT(Just In Time) a Hot-Spot 1.5.1. Vývojové prostředky doporučené(tj. nainstalované v počítačové učebně) jsou dva prostředky oba jsou volně šiřitelné a jsou dostupné na poskytnutém CD 1. JDK, SciTe, příkazová řádka budeme používat při několika prvních cvičeních JDK(Java Development Kit) základní programy poskytované firmou Sun k dispozici na http://java.sun.com SciTe jednoduchý editor se základní podporou Javy k dispozici na http://www.scintilla.org Výhody: naprostá kontrola nad zdrojovým souborem, jednoduché pro naučení, minimální systémové nároky, editorjevhodnýiprooperacesjinýmitypysouborů Nevýhody: pro složitější programy těžkopádné, přicházíme o výhodu podpory moderních vývojových prostředků, méně komfortní programování 2. Eclipse budeme používat od zhruba druhé třetiny semestru RAD(Rapid Application Development) nástroj špičkové profesionální kvality k dispozici na http://www.eclipse.org/platform Výhody: po zacvičení a poznání i základních možností výrazně zvyšuje produktivitu a komfort programování významná pomoc při ladění(debug) odhady založené na zkušenosti říkají, že pro zkušeného programátora použitím(kvalitního) RAD se efektivita zvyšuje 2 až 3krát Nevýhody: pro začátečníka komplikované prostředí Přednášky KIV/PPA1, Pavel Herout, 2009 10

využijeme pouze omezenou část základních možností značné systémové nároky, zejména na operační paměť(min. 256 MB, lépe 512 MB) 1.5.2. První program v Javě vypíše daný text na obrazovku public class PrvniProgram { public static void main(string[] args) { System.out.println("Ahoj, toto je prvni program"); } } po překladu: javac PrvniProgram.java aspuštění: java PrvniProgram se na obrazovku vypíše: Ahoj, toto je prvni program nejjednodušší program v jazyku Java je tvořen jedním zdrojovým souborem obsahuje deklaraci veřejné třídy(public class) pojmenované PrvniProgram Konvence( štábní kultura ): jménatřídsepíšísprvnímvelkýmpísmenem vnořené úseky kódu se odsazují(ideálně dvěma mezerami, ne tabulátorem) v ní je deklarována hlavní metoda(funkce) main() je to veřejná statická metoda(public static method) její první řádek se nazývá hlavička metody klíčové slovo void vyjadřuje, že metoda nevrací žádnou hodnotu(jde o proceduru) v závorkách je specifikace formálního parametru(string[] args), který zpočátku nevyužijeme zdrojový soubor musí mít jméno shodné se jménem veřejné třídy a příponu.java, tedy PrvniProgram.java jakýkoliv jiný název, včetně prvniprogram.java, je chybný Výstraha Java důsledně rozlišuje malá a velká písmena(case sensitive) Přednášky KIV/PPA1, Pavel Herout, 2009 11