NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Save this PDF as:
 WORD  PNG  TXT  JPG

Rozměr: px
Začít zobrazení ze stránky:

Download "NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha"

Transkript

1 NIO Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

2 Úvod Knihovna NIO (java.nio) byla zaveden do JDK od verze 1.4 jako nadstavba standardní knihovny java.io. Jejím hlavním účelem je zprostředkovat aplikacím přímý přístup k rychlým nativním I/O operacím, které poskytuje operační systém. Hlavní vlastnosti NIO: vysoká rychlost využití blokových přenosů neblokovaný vstup a výstup možnost využití DMA využití SSL

3 Abstraktní třída Buffer Buffer je konečná vyrovnávací paměť slotů na elementy primitivního typu. Buffer pracuje buď v režimu čtení nebo zápisu. Buffer má následující vlastnosti: capacity - fixní počet slotů, position - index první pozice, která se bude dále zpracovávat. V režimu čtení je to první element, který se bude číst, v režimu zápisu je to první volný slot. limit - index první pozice, která se naopak nebude zracovávat. V režimu čtení z bufferu je to první volný slot, v režimu zápisu je to capacity. Pro buffer platí invariant: 0 <= mark <= position <= limit <= capacity Pro každý primitivní typ je definována podtřída: ByteBuffer, IntBuffer,... atd.

4 Základní operace nad Buffer Do bufferu se v jednom okamžiku buď zapisuje nebo se z něj čte. public final Buffer flip() - překlopení bufferu z režimu zápis do režimu čtení: limit je nastaven na position position je nastavena na 0. public final Buffer clear() - vymazání bufferu. position je nastavena na 0, limit je nastaven na capacity. public final int remaining() - vrátí počet elementů mezi position a limit tj. buď počet zbývajících elementů v režimu čtení nebo počet zbývajících volných slotů v režimu zápisu.

5 Třída ByteBuffer Základní konkrétní buffer. Umožňuje: zápis a čtení jednotlivých bytů a dále polí bytů. zápis a čtení primitivních datových typů, vytváření pohledových bufferů. Metody pro vytvoření objektu ByteBuffer: static ByteBuffer allocatedirect(int capacity) - vytvoří tzv. přímý buffer. Pro přímý buffer JVM "make a best effort to perform native I/O operations directly upon it" - t.zn bez kopírovacích operací po každé nativní I/O operaci. Přímý buffer může existovat mimo oblast heapu! static ByteBuffer allocate(int capacity) - vytvoří nepřímý ByteBuffer o zadané kapacitě, který je zálohován bytovým polem.

6 Základní metody pro čtení a zápis Metody pro čtení z ByteBuffer. Pokud operaci nelze provést je hozena výjimka BufferUnderflowException: byte get() - relativní čtení. Vrátí byte a inkrementuje position, byte get(int index) - absolutní čtení z indexu, ByteBuffer get(byte[] dst) - relativní blokové čtení. Přesune byty z bufferu do dst. Metody pro zápis do ByteBuffer. Pokud operaci nelze provést je hozena výjimka BufferOverflowException: ByteBuffer put(byte b) - relativní zápis bytu, ByteBuffer put(int index, byte b) - absolutní zápis bytu, ByteBuffer put(byte[] src) - relativní zápis pole bytů.

7 Čtení a zápis jednoduchých typů ByteBuffer má metody pro čtení a zápis jednotlivých elemetů jednoduchých typů. Např. pro int: int getint() - relativní čtení z bufferu. Čte 4 byty z aktuální pozice, vrátí je transformované na hodnotu int. Inkrementuje position o 4, int getint(int index) - totéž, ale absolutně, ByteBuffer putint(int value) - relativní zápis na aktuální pozici, position je inkremetováno o 4, ByteBuffer putint(int index, int value) - totéž, ale absolutně.

8 Specializovaný pohledový buffer U homogenních dat se místo používání typových metod getxxx a putxxx doporučují tzv. pohledové buffery (view buffer), které jsou zálohovány ByteBufferem. Specializovaný pohledový buffer pro typ int se vytvoří metodou: IntBuffer asintbuffer() Pohledové buffery mají následující výhody: jsou indexovány v typovaných elementech a ne v bytech, mají typované put a get metody pokud je zálohový Bytebuffer přímý, jsou také přímé a tudíž efektivní.

9 Specializované buffery Pro každý primitivní typ existují specializované buffery. Např.: public abstract class IntBuffer extends Buffer implements Comparable<IntBuffer> Specializované buffery definuje operace absolutní a relativní get a put operace na jeden element nebo nebo na pole elementů. Vytváření specializovaných bufferů: zabalením existujícího pole: static IntBuffer wrap(int[] array) - vytvoří buffer zálohovaný zadaným polem, přímou alokací: static IntBuffer allocate(int capacity) vytvořením pohledu na existující ByteBuffer. Specializované buffery mohou být přímé nebo nepřímé.

10 Kanály Kanály jsou reprezentanty entit, které umožňují čtení a zápis dat (obdoba streamů v java.io) jako jsou soubory, hardwarová zařízení, síťové sokety atp.: interface Channel extends Closeable Na rozdíl od streamů mohou být kanály duplexní. Po vytvoření je kanál otevřen. Po uzavření jej nelze znovu otevřít a zavolání operace hodí výjimku ClosedChannelException: boolean isopen() void close() throws IOException Kanály jsou thread-safe.

11 Kanál pro čtení a zápis Rozhraní ReadableByteChannel a WritableByteChannel definují kanály pro čtení resp zápis. Na kanálu může probíhat pouze jedna čtecí resp. zápisová operace současně: int read(bytebuffer dst) throws IOException - čte posloupnost bytů z kanálu do bufferu. Operace se pokusí přečíst až dst.remaining() bytů. Vrací skutečný počet přečtených bytů a bufferu position je o tuto hodnotu inkremetována. V blokovacím módu přečte alespoň jeden byte. int write(bytebuffer src) throws IOException - pokusí se zapsat do kanálu blok src.remaining() bytů z bufferu. Počet zapsaných bytů závisí na typu kanálu (Např. SocketChannel v neblokovacím módu zapíše pouze tolik bytů, kolik se aktuálně vejde do výstupního bufferu.

12 Třída FileChannel Kanál pro čtení, zápis, mapování a manipulaci se soubory. Kanál se vytváří operací getchannel nad objektem FileInputStream, FileOutputStream resp. RandomAccessFile. long position() throws IOException FileChannel position(long newposition) throws IOException - vrací resp. nastavuje pozici kanálu v souboru od které se provádí čtení resp. zápis, long size() throws IOException FileChannel truncate(long size) throws IOException - vrátí resp. nastaví velikost souboru, void force(boolean metadata) throws IOException - způsobí okamžitý zápis dat do souboru.

13 Kopírování souborů static void copy(file infile, File outfile) throws IOException { FileInputStream fin = new FileInputStream(infile); FileOutputStream fout = new FileOutputStream(outfile); FileChannel fcin = fin.getchannel(); FileChannel fcout = fout.getchannel(); ByteBuffer buffer = ByteBuffer.allocate(1024); // ByteBuffer buffer = ByteBuffer.allocateDirect(1024); while (true) { buffer.clear(); int r = fcin.read( buffer ); if (r==-1) { break; buffer.flip(); fcout.write( buffer );

14 Třída FileChannel II MappedByteBuffer map(filechannel.mapmode mode, long position, long size) throws IOException - namapuje zadaný region souboru přímo do paměti. Chování kanálu je dáno hodnotou parametru mode (MapMode. READ_ONLY, MapMode.READ_WRITE, MapMode. PRIVATE) FileLock trylock(long position, long size, boolean shared) throws IOException - neblokovací pokus získat zámek pro zadaný region souboru, FileLock lock(long position, long size, boolean shared) throws IOException - blokovací operace pro získání zámku.

15 Použití mapování private static int sum(bytebuffer bb) { int sum = 0; while (bb.hasremaining()) { if ((sum & 1)!= 0) sum = (sum >> 1) + 0x8000; else sum >>= 1; sum += bb.get() & 0xff; sum &= 0xffff; return sum; private static int sum(file f) throws IOException { FileInputStream fis = new FileInputStream(f); FileChannel fc = fis.getchannel(); sz = (int)fc.size(); MappedByteBuffer bb = fc.map(filechannel.mapmode.read_only, 0, sz); return sum(bb);

16 SelectableChannel Abstraktní třída SelectableChannel je kanál, který může být testován na připravenost provést nějakou operaci - např. čtení dat. SelectableChannel musí být napřed registrován u objektu Selector: final SelectionKey register(selector sel, int ops) throws ClosedChannelException - registruje kanál u zadaného selektoru a vrací selekční klíč. Parametr ops určuje jednotlivými bity množinu operací, které kanál nabízí (read, write, connect, accept). Konkrétní podtřídy jsou DatagramChannel, ServerSocketChannel, SocketChannel.

17 Třída Selector Multiplexor zaregistrovaných kanálů. Vytváří se faktorovou metodou: static Selector open() throws IOException Metody: int select(long timeout) throws IOException - blokovací operace detekující kanály, které jsou připravené provést I/O operaci. Vrací nenulový počet připravených kanálů. int selectnow() throws IOException - neblokovací operace se stejnou funkcí, která však může vrátit 0. public abstract Set<SelectionKey> selectedkeys() - vrací množinu klíčů připravených kanálů.

18 SelectionKey Objekty SelectionKey (selekční klíč) reprezentují registraci kanálů u selektoru. Selekční klíče jsou vytvořeny registrační metodou selektoru: register. Selekční klíč obsahuje dvě množiny operací: interest_set - operace, na které budou testovány kanály selekční metodou selektoru. Operace jsou zadány při registraci kanálu a mohou být později změněny metodou interestops(int), ready-set - operace, které je kanál aktuálně připraven vykonat.

19 NIO Server public class NioServer implements Runnable { private InetAddress hostaddress; private int port; private ServerSocketChannel serverchannel; private Selector selector; private ByteBuffer readbuffer = ByteBuffer.allocate(8192); public NioServer(InetAddress hostaddress, int port) throws IOException { this.hostaddress = hostaddress; this.port = port; this.selector = this.initselector(hostaddress, port);

20 Vytvoření selektoru private Selector initselector(inetaddress hostaddress, int port;) throws IOException { Selector socketselector = SelectorProvider.provider().openSelector(); this.serverchannel = ServerSocketChannel.open(); serverchannel.configureblocking(false); InetSocketAddress isa = new InetSocketAddress(this.hostAddress, this.port); serverchannel.socket().bind(isa); serverchannel.register(socketselector, SelectionKey.OP_ACCEPT); return socketselector;

21 Server run public void run() { while (true) { try { int n = this.selector.select(); Iterator<SelectionKey> selectedkeys = this.selector.selectedkeys().iterator(); while (selectedkeys.hasnext()) { SelectionKey key = selectedkeys.next(); selectedkeys.remove(); if (!key.isvalid()) continue; if (key.isacceptable()) this.accept(key); else if (key.isreadable()) { this.read(key); catch (Exception e) { e.printstacktrace();

22 Akceptace klíče private void accept(selectionkey key) throws IOException { ServerSocketChannel serversocketchannel = (ServerSocketChannel) key.channel(); SocketChannel socketchannel = serversocketchannel.accept(); Socket socket = socketchannel.socket(); socketchannel.configureblocking(false); socketchannel.register(this.selector, SelectionKey.OP_READ);

23 Čtení dat private void read(selectionkey key) throws IOException { SocketChannel socketchannel = (SocketChannel) key.channel(); this.readbuffer.clear(); int numread; try { numread = socketchannel.read(this.readbuffer); catch (IOException e) // The remote forcibly closed the connection, { socketchannel.close(); key.cancel(); return; if (numread == -1) { // Remote entity shut the socket down cleanly. { socketchannel.close(); key.cancel(); return; this.worker.processdata(this, socketchannel, this.readbuffer.array(), numread);

Technologie JavaBeans

Technologie JavaBeans Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent

Více

Se vznikem internetu se můžeme na síťovou komunikaci v Javě (komunikace mezi více JVM) dívat dvěma pohledy-způsoby:

Se vznikem internetu se můžeme na síťovou komunikaci v Javě (komunikace mezi více JVM) dívat dvěma pohledy-způsoby: 4. blok Java síťová Studijní cíl V tomto bloku studenti získají základní dovednosti při práci s Javou v síťovém prostředí. V úvodu budou zkoumány třídy pro práci se síťovými adresami InetAddress, InetSocketAddress

Více

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha ANT Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Vláknové programování část V

Vláknové programování část V Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2014 03 25 1/25 Přehled přednášky Paměťový model Javy GUI v Javě Vlákna

Více

Práce se soubory v Javě

Práce se soubory v Javě Práce se soubory v Javě Cílem kapitoly je naučit pracovat se soubory a adresáři v Javě. Na jednoduchých příkladech ukázat procházení adresáře, čtení z textového souboru a zápis do textového souboru. Klíčové

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Čipové karty Lekařská informatika

Čipové karty Lekařská informatika Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány

Více

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

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

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

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

JSR 184 - tutorial 2 Transformace v JSR-184

JSR 184 - tutorial 2 Transformace v JSR-184 JSR 184 - tutorial 2 Transformace v JSR-184 Cíl tutorialu: - naučit vás měnit pozici/ rotaci/ velikost objektu Tak jdeme na to: V minulém tutorialu (Úvod do JSR-184) jsme si ukázali, jak námi vytvořenou

Více

Principy objektově orientovaného programování

Principy objektově orientovaného programování Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T

Více

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33 Programování v C# Síťová komunikace Petr Vaněček 1 / 33 Obsah přednášky Jednoduchá komunikace Sockety 2 / 33 System.Net Namespace poskytuje jednoduché rozhraní ke standardním protokolům Třída WebClient

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

InputStream. FilterInputStream

InputStream. FilterInputStream 6. Vstupy a výstupy Pro práci se vstupy a výstupy nám Java poskytuje celou řadu tříd a jejich metod. Jsou uloženy v balíku java.io. Tato knihovna je založena na mechanizmu tzv. vstupních a výstupních proudů

Více

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

Ošetřování chyb v programech

Ošetřování chyb v programech Ošetřování chyb v programech Úvod chyba v programu = normální záležitost typy chyb: 1) programátorská chyba při návrhu každých 10 000 řádek 1 chyba lze jen omezeně ošetřit (před pádem aplikace nabídnout

Více

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha OSGi Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Více

Proměnné a datové typy

Proměnné a datové typy Proměnné a datové typy KAPITOLA 2 V této kapitole: Primitivní datové typy Proměnné Opakování Mezi základní dovednosti každého programátora bezesporu patří dobrá znalost datových typů. Ta vám umožní efektivní

Více

Soketové připojení Klient InetAddress getbyname() UnknowHostException SecurityException Socket getinputstream() getoutputstream() IOException Server

Soketové připojení Klient InetAddress getbyname() UnknowHostException SecurityException Socket getinputstream() getoutputstream() IOException Server Soketové připojení Při socketovém připojení spolu komunikují dvě nezávislé JVM pomocí streamů odpovídajících typů. Po síti můžete posílat textové i binární informace, je možno posílat i objekty, které

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA

IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA IMPLEMENTACE INFORMAČNÍHO SYSTÉMU VIDIUM V JAZYCE JAVA Michal Brožek, Dominik Svěch, Jaroslav Štefaník MediumSoft a.s., Cihelní 14, 702 00 Ostrava, ČR Abstrakt Autoři v článku popisují postupy použité

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

Java a Caché IV: Manipulace s objekty

Java a Caché IV: Manipulace s objekty 1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

SW_10. Dekorátor - Decorator Stav - State

SW_10. Dekorátor - Decorator Stav - State SW_10 Dekorátor - Decorator Stav - State 1 Úvod Dekorátor Naučíte se jak zkrášlovat (decorate) vaše třídy za běhu programu s využitím skládání objektů. Tímto způsobem budete schopni dát vašim objektům

Více

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů: Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.

Více

11. Dědičnost. Dědičnost strana 103

11. Dědičnost. Dědičnost strana 103 Dědičnost strana 103 11. Dědičnost V této kapitole si vysvětlíme jeden ze základních pojmů objektově orientovaného programování dědičnost (inheritance). S ní souvisejí i následující témata: předek a potomek

Více

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000. 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000. 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1 PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1 PESlib Popis knihoven PASCAL a C 03.2000 2. verze dokumentu Zmìny a doplòky proti 1.

Více

29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ)

29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ) 29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ) Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka

Více

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/04.0006

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/04.0006 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/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem

Více

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

7. Dynamické datové struktury

7. Dynamické datové struktury 7. Dynamické datové struktury Java poskytuje několik možností pro uložení většího množství dat (tj. objektů či primitivních datových typů) v paměti. S nejjednodušší z nich, s polem, jsme se již seznámili.

Více

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006 Jini (pronounced GEE-nee) Cvičení 8 - DS 2006 Úvod JINI (pronounced GEE-nee; loosely derived from the Arabic for magician) Systém pro vyhledávání (lookup) a objevování (discovery) objektů v síti Zcela

Více

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27. Základy programovaní 3 - Java Unit testy Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 26.,27. listopad, 2014 Petr Krajča (UP) Unit testy 26.,27. listopad, 2014 1 / 14 Testování zásadní

Více

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

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Objektově orientované programování

Objektově orientované programování Objektově orientované programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1 Přednáška 7: Objektově

Více

Rozhraní Sockets Java a C (BSD)

Rozhraní Sockets Java a C (BSD) Rozhraní Sockets Java a C (BSD) Počítačové sítě 3. cvičení Seznámení s Virtlabem Aktivní úlohy odkazy na konzoly rezervovaných zařízení Pozor na kvóty Používat záznam, zálohovat si konfiguraci před ukončením

Více

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory Výhody objektového řešení Nástroje pro IO operace jsou v C++ součástí knihoven Hierarchie objektových

Více

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Vstupy a výstupy pokračování Kódování textů Texty (řetězce nebo znaky) v jazyce C# jsou v paměti uloženy v kódování označovaném běžně Unicode (kódová stránka 1200).

Více

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

Remote Method Invocation RMI

Remote Method Invocation RMI Remote Method Invocation RMI Java TM Remote Method Invocation (RMI) umožňuje objektu na jedné Java Virtual Mashine(JVM) jednoduše spustit metodu jiného objektu na vzdálené JVM. Při volání vzdálené metody

Více

Vstupně - výstupní moduly

Vstupně - výstupní moduly Vstupně - výstupní moduly Přídavná zařízení sloužící ke vstupu a výstupu dat bo k uchovávání a archivaci dat Nejsou připojována ke sběrnici přímo, ale prostřednictvím vstupně-výstupních modulů ( ů ). Hlavní

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text()); Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového

Více

Vytváření a použití knihoven tříd

Vytváření a použití knihoven tříd Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce

Více

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

Design time - vytváří se program - metadata - vytváří se např. třída. Run time - běh programu - ukládá se do paměti počítače - vytváří se např.

Design time - vytváří se program - metadata - vytváří se např. třída. Run time - běh programu - ukládá se do paměti počítače - vytváří se např. Design time - vytváří se program - metadata - vytváří se např. třída Run time - běh programu - ukládá se do paměti počítače - vytváří se např. objekt rysy javy - zavedení jasného pořádku a etikety - přísné

Více

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

Programovací jazyky s podporou vláken Java

Programovací jazyky s podporou vláken Java Programovací jazyky s podporou vláken Java Co je to vlákno? Hierarchie z pohledu operačního systému: Proces o největší výpočetní entita plánovače o vlastní prostředky, paměť a další zdroje o v závislosti

Více

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Desková hra Go pro více klientů Petr Lokvenc

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Desková hra Go pro více klientů Petr Lokvenc UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Desková hra Go pro více klientů Petr Lokvenc Bakalářská práce 2013 Prohlášení autora Prohlašuji, že jsem tuto práci vypracoval samostatně. Veškeré

Více

FPC - Převodník pro čínské čtečky F17 a F18 - podrobný popis služeb a příkazů -

FPC - Převodník pro čínské čtečky F17 a F18 - podrobný popis služeb a příkazů - FPC - Převodník pro čínské čtečky F17 a F18 - podrobný popis služeb a příkazů - verze 1.0, 16.5.2011 Jiří Libra, jiri.libra@gmail.com Příkazy služby FPCManagement Formát dat služby FPCManagement v protokolu

Více

Úvod do programování v jazyce Java

Úvod do programování v jazyce Java Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz

Více

Objektově orientované programování v PHP 5. Martin Klíma

Objektově orientované programování v PHP 5. Martin Klíma Objektově orientované programování v PHP 5 Martin Klíma OOP & PHP 5 V PHP 5 konečně značné rozšíření OOP Blíží se to moderním programovacím jazykům jako Java nebo C# Výhody OOP Zapouzdření (nové modifikátory

Více

Principy operačních systémů. Lekce 2: Správa paměti

Principy operačních systémů. Lekce 2: Správa paměti Principy operačních systémů Lekce 2: Správa paměti Funkce správce paměti Správce (operační) paměti je součástí kernelu. Jeho implementace může být různá, ale základní funkce jsou obdobné ve všech OS: Udržovat

Více

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB) Obsah přednášky Technologie Miroslav Beneš Popis technologie EJB J2EE aplikace Typy komponent Entity Beans Session Beans Message-Driven Beans Java Messaging Service (JMS) Závěr 2 (EJB) EJB kontejner Specifikace

Více

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)

Více

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end; Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru

Více

Java aplety. Předávání parametrů z HTML

Java aplety. Předávání parametrů z HTML Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:

Více

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48 LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám

Více

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java

Více

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

KIV/PIA 2013 Jan Tichava

KIV/PIA 2013 Jan Tichava KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise

Více

Mobilní robotika. doplňující podklady. Ing. Vít Ondroušek, Ph.D. Ing. Jan Kolomazník, Ph.D.

Mobilní robotika. doplňující podklady. Ing. Vít Ondroušek, Ph.D. Ing. Jan Kolomazník, Ph.D. Mobilní robotika doplňující podklady Ing. Vít Ondroušek, Ph.D. Ing. Jan Kolomazník, Ph.D. Ústav Informatiky Provozně ekonomická fakulta Mendelova univerzita v Brně V Brně dne 06. 01. 2015 Obsah ÚVOD...

Více

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5); Programovací jazyk PHP doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Třídy a objekty Výjimky Webové aplikace

Více

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch. 1. ŘEŠENÉ PŘÍKLADY 1.2 PŘÍKLAD 24-2-8-2_DOKONALÉ ČÍSLO Napište program, který má na vstupu přirozené číslo N > 1. Výstupem je informace o tom, zda toto číslo je/není dokonalé. (Dokonalé číslo je takové

Více

JAVA. Krátke poznámky:

JAVA. Krátke poznámky: JAVA Krátke poznámky: Vše je definováno ve třídách; Žádné funkce mimo třídy Skoro všetko je objekt, výnimka sú premenné (napr. int) Neexistuje operátor delete Rušenie objektov výlučne cez Garbage Collector

Více

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce. Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby

Více

Návrhové vzory Design Patterns

Návrhové vzory Design Patterns Návrhové vzory Design Patterns doc. Ing. František Huňka, CSc. Ostravská univerzita PřF 1 Definice vzoru Každý vzor popisuje problém, který nastává opakovaně v našem prostředí, a potom popisuje podstatu

Více

Postřehová hra. Zadání projektu. 1 Moje cíle

Postřehová hra. Zadání projektu. 1 Moje cíle Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Postřehová hra ročníkový projekt Matouš Jokl, 1E květen 2014 Obsah 1 Moje cíle...1 2 Kód...2 1.Objekty a ArrayList...2 2.Jpanel

Více

Testování. Zadání příkladu. Vytvoření kostry třídy. Obsah:

Testování. Zadání příkladu. Vytvoření kostry třídy. Obsah: Obsah: Testování... 1 Zadání příkladu... 1 Vytvoření kostry třídy... 1 Napsání testů... 2 Testy správnosti... 3 Testy výjimek... 3 Testy vztahů/závislostí... 4 Zdrojový text testu... 4 Spuštění testů...

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

Více

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39 Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy

Více

Zpracování výjimečných situací

Zpracování výjimečných situací Zpracování výjimečných situací Jazyky bez ovladačů výjimek výskyt výjimky způsobí přenesení výpočtu do operačního systému. Ten vypíše zprávu a ukončí program. Jazyky s ovladačem výjimek programy mohou

Více

Rozhraní USB. Rozhraní USB. Specifikace USB. Doplnění (upřesnění) 1.0. Rychlosti Low Speed (1.5 Mb/sec) a Full Speed (12 Mb/sec).

Rozhraní USB. Rozhraní USB. Specifikace USB. Doplnění (upřesnění) 1.0. Rychlosti Low Speed (1.5 Mb/sec) a Full Speed (12 Mb/sec). 1 Specifikace USB USB 1.0 Původní specifikace. USB 1.1 Doplnění (upřesnění) 1.0. Rychlosti Low Speed (1.5 Mb/sec) a Full Speed (12 Mb/sec). USB 2.0 Doplněno o High Speed (480 Mb/sec.) a další rozšíření

Více

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27 Programování v C# Soubory a regulární výrazy Petr Vaněček 1 / 27 Obsah přednášky Informace o prostředí Práce se soubory Regulární výrazy 2 / 27 Zprostředkování informací Třída System.Environment Poskytuje

Více

Rozklad problému na podproblémy

Rozklad problému na podproblémy Rozklad problému na podproblémy Postupný návrh programu rozkladem problému na podproblémy zadaný problém rozložíme na podproblémy pro řešení podproblémů zavedeme abstraktní příkazy s pomocí abstraktních

Více

Michal Podzimek 6. 11. 2013

Michal Podzimek 6. 11. 2013 Testování Test NG Michal Podzimek 6. 11. 2013 1 Úvod public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest()

Více

Datové struktury obsah přednášky 1. Úvod 2. Třídy Type-wrapper (obalový typ) pro primitivní typy automatické převody 3. Automatické převody mezi

Datové struktury obsah přednášky 1. Úvod 2. Třídy Type-wrapper (obalový typ) pro primitivní typy automatické převody 3. Automatické převody mezi Datové struktury obsah přednášky 1. Úvod 2. Třídy Type-wrapper (obalový typ) pro primitivní typy automatické převody 3. Automatické převody mezi primitivními a obalovými typy 4. Třídy odkazující sama na

Více

Principy operačních systémů. Lekce 7: Souborový systém

Principy operačních systémů. Lekce 7: Souborový systém Principy operačních systémů Lekce 7: Souborový systém Souborový systém Souborový systém (anglicky file system) je označení pro způsob organizace dat ve formě souborů (a většinou i adresářů) tak, aby k

Více

Reflexe RTTI Runtime Type Identification

Reflexe RTTI Runtime Type Identification Vaše jistota na trhu IT Reflexe RTTI Runtime Type Identification Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Vaše jistota na trhu IT Opakování Shrnutí či téma Co je to reflexe/rtti Termínem Reflexe označujeme

Více

Úvod do Javy, JDBC a multimediální databáze

Úvod do Javy, JDBC a multimediální databáze Úvod do Javy, JDBC a multimediální databáze Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů 1. demonstrační cvičení pro PDB 2. říjen 2015 Marek Rychlý

Více

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Technologie Java Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Trocha historie Java vznikla v roce 1995 jak minimalistický programovací jazyk (211 tříd). Syntaxe vycházela z C/C++. V

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken. Perly code-review z praxe

Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken. Perly code-review z praxe Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Perly code-review z praxe Task: Přidej do sloupce Název info-baloon Co je code-review? druhé vývojářské

Více

FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor

FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor FASTPort Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům aneb Jak připojit koprocesor *) inteligentní karta = karta vybavená vlastním procesorem J. Němeček 12. 10. 2013 úvodní

Více

Proudy, Zpracovсnэ XML. Radek Koэ

Proudy, Zpracovсnэ XML. Radek Koэ Seminс Java Proudy, Zpracovсnэ XML Radek Koэ Fakulta informanэch technologiэ VUT Bezen 2008 Radek Koэ Seminс Java Proudy, Zpracovсnэ XML 1/ 38 Obsah Vstup/Vstup koncepce proud soubory, adresсe binсrnэ

Více

Vláknové programování část II

Vláknové programování část II Vláknové programování část II Lukáš Hejmánek, Petr Holub {xhejtman,hopet@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2012 02 28 1/56 Přehled přednášky Ada Základy jazyka GNAT Viditelnost

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více

X36 WWW Šablony Martin Klíma xklima@fel.cvut.cz Čtryřvrstvá architektura Server Klient Prezentační logika Aplikační Logika Databáze 2 Výhody Jednotlivé vrstvy jsou nezávislé Lze je samostatně spravovat

Více