Hlavní navigace

Seriál Programovaci jazyk Java a JVM

Seriál se věnuje popisu nových či zajímavých vlastností programovacího jazyka Java i popisu interní funkce JVM.

Pohled pod kapotu JVM – složené datové typy a programová smyčka typu for-each v JVM

V dnešní části seriálu o JVM i o programovacím jazyku Java si řekneme, jakým způsobem se do bajtkódu virtuálního stroje Javy překládá programová smyčka typu „for-each“. Použití této smyčky si ukážeme na čtveřici demonstračních příkladů využívajících pole, seznamy, množiny i mapy.

Doba čtení: 34 minut

Pohled pod kapotu JVM – přístup k prvkům složených datových typů v JVM, Lua VM a Python VM (pokračování)

V dnešní části seriálu o Javě i o virtuálním stroji tohoto jazyka společně dokončíme téma, kterému jsme se věnovali již v minulém díle. Popíšeme si, jakým způsobem je v bajtkódu Python VM realizován přístup k prvkům složených datových typů, konkrétně k prvkům seznamů a n-tic.

Doba čtení: 24 minut

Pohled pod kapotu JVM – přístup k prvkům složených datových typů v JVM, Lua VM a Python VM

V dnešní části seriálu o Javě i o virtuálním stroji tohoto jazyka si řekneme, jakým způsobem je v bajtkódech JVM, Lua VM a Python VM realizován přístup k prvkům složených datových typů. V případě Javy se samozřejmě jedná o pole, v případě jazyka Lua o tabulky a Python obsahuje podporu pro seznamy a n-tice.

24. 6. 2014 0:00
Doba čtení: 45 minut

Pohled pod kapotu JVM – práce s parametry funkcí a složené datové typy v JVM, Lua VM a Python VM

Dnešní část seriálu o programovacím jazyku Java i o virtuálním stroji Javy je opět věnována popisu společných vlastností, ale i rozdílů mezi bajtkódy JVM, Lua VM a Pythonu. Dnes se konkrétně budeme zabývat způsobem předávání a vyzvedávání parametrů funkcí/metod a taktéž prací se složenými datovými typy.

Doba čtení: 44 minut

Pohled pod kapotu JVM – překlad dalších řídicích struktur do bajtkódů JVM, Lua VM a Python VM

V dnešní části seriálu Javě se již počtvrté budeme zabývat porovnáváním vlastností bajtkódů JVM, Python VM i Lua VM. Ukážeme si způsob překladu příkazu „return“ a zejména pak překlad počítaných programových smyček typu „for“ (řekneme si i o historii tohoto klíčového slova).

Doba čtení: 38 minut

Pohled pod kapotu JVM – překlad programových smyček do bajtkódů JVM, Lua VM a Python VM

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji Javy se již potřetí budeme zabývat porovnáváním vlastností bajtkódů JVM, Python VM i Lua VM. Zaměříme se především na způsob překladu programových smyček typu „while“ a „do-while“ (popř. „repeat-until“) do bajtkódu.

Doba čtení: 35 minut

Pohled pod kapotu JVM – překlad do bajtkódů JVM, Lua VM a Python VM

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji Javy budeme pokračovat v porovnávání vlastností bajtkódů JVM, Python VM i Lua VM, a to na několika demonstračních příkladech. Kromě toho si však popíšeme i základní vlastnosti dalšího zajímavého virtuálního stroje nazvaného Parrot.

Doba čtení: 46 minut

Pohled pod kapotu JVM – porovnání bajtkódu virtuálního stroje Javy s Lua a Pythonem

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji Javy začneme porovnávat tři vzájemně rozdílné bajtkódy – bajtkód JVM, bajtkód využívaný virtuálním strojem jazyka Lua a konečně bajtkód, který je použit Pythonem (přesněji řečeno CPythonem).

Doba čtení: 39 minut

Pohled pod kapotu JVM – výkonnost aplikací vytvořených s využitím SDLJava v porovnání s nativními aplikacemi

V dnešní části seriálu o JVM i o jazyku Java dokončíme popis multimediální knihovny SDLJava. Řekneme si o některých základních pravidlech pro tvorbu efektivních aplikací a následně porovnáme výkonnost dvou prakticky totožných programů, z nichž jeden je napsán v kombinaci C+SDL a druhý v kombinaci Java+SDLJava.

Doba čtení: 29 minut

Pohled pod kapotu JVM – přehrávání a mixování zvuků s využitím knihovny SDLJava

V předchozí části seriálu o JVM i o programovacím jazyku Java jsme si popsali způsob přehrávání hudby s využitím knihovny SDLJava. Dnes si řekneme, jakým způsobem je možné zajistit načítání, přehrávání i mixování zvuků, neboť i ty jsou součástí mnoha multimediálních aplikací.

Doba čtení: 31 minut

Pohled pod kapotu JVM – přehrávání hudby s využitím knihovny SDLJava

V dnešní části seriálu o JVM i o jazyku Java se budeme zabývat poměrně rozsáhlou problematikou hudebních souborů i přehrávání hudby. Díky existenci třídy SDLMixer v knihovně SDLJava se však celý problém z hlediska programátora do značné míry zjednodušuje, jak si ostatně ukážeme na několika příkladech.

Doba čtení: 36 minut

Pohled pod kapotu JVM – kreslicí funkce ve třídě sdljavax.gfx.SDLGfx (3.část) a zvukový subsystém SDLJava

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji tohoto jazyka nejprve dokončíme popis „kreslicích“ funkcí, které jsou dostupné ve třídě sdljavax.gfx.SDLGfx. Následně se zaměříme na popis zvukového subsystému knihovny SDLJava, zejména třídy SDLMixer.

22. 4. 2014 0:00
Doba čtení: 31 minut

Pohled pod kapotu JVM – kreslicí funkce dostupné ve třídě sdljavax.gfx.SDLGfx (2.část)

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji tohoto jazyka si ukážeme některé další „kreslicí“ funkce, které jsou dostupné ve třídě sdljavax.gfx.SDLGfx. Kromě vykreslování jednotlivých pixelů a úseček je totiž možné s využitím této třídy vykreslovat i složitější entity.

Doba čtení: 31 minut

Pohled pod kapotu JVM – kreslicí funkce dostupné ve třídě sdljavax.gfx.SDLGfx

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji tohoto jazyka si popíšeme některé funkce nabízené třídou sdljavax.gfx.SDLGfx. Tyto funkce slouží k vykreslování různých základních grafických entit do zvolené plochy (SDL_Surface), tedy mj. i přímo do framebufferu.

Doba čtení: 33 minut

Pohled pod kapotu JVM – práce s TTF fonty v knihovně SDLJava (dokončení)

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji tohoto jazyka dokončíme popis práce s TTF fonty v knihovně SDLJava. Kromě vykreslování textu je totiž mnohdy nutné nastavit styl vykreslování a popř. zjistit základní charakteristiky použitého fontu, zejména výšku jednotlivých textových řádků.

1. 4. 2014 0:00
Doba čtení: 28 minut

Pohled pod kapotu JVM – práce s TTF fonty v knihovně SDLJava

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji tohoto jazyka si na čtveřici demonstračních příkladů ukážeme, jakým způsobem je možné s využitím knihovny SDLJava pracovat s TTF fonty a jak je možné do bitmap (a tím pádem i na obrazovku) vykreslovat text.

Doba čtení: 32 minut

Pohled pod kapotu JVM – zpracování událostí v knihovně SDLJava (dokončení)

V dnešním článku o jazyku Java i o jeho virtuálním stroji dokončíme problematiku práce s událostmi implementovanými v knihovně SDLJava. Na čtveřici demonstračních příkladů si ukážeme, jak lze naprogramovat aplikaci s oknem s měnitelnými rozměry i to, jak lze například registrovat ztrátu fokusu tohoto okna.

18. 3. 2014 0:00
Doba čtení: 30 minut

Pohled pod kapotu JVM – zpracování událostí v knihovně SDLJava (klávesnice a myš)

V dnešní části seriálu o programovacím jazyku Java i o virtuálním stroji tohoto jazyka si podrobněji popíšeme způsob, jakým se v knihovně SDLJava zpracovávají události vznikající při práci s klávesnicí a myší. Popis bude samozřejmě doplněn i několika demonstračními příklady.

Doba čtení: 34 minut

Pohled pod kapotu JVM – zpracování událostí v knihovně SDLJava

Knihovna SDLJava obsahuje i mechanismus umožňující zpracování různých typů událostí, které mohou vzniknout například při stisku klávesy či při pohybu myši popř. joysticku. Celý mechanismus práce s událostmi je navržen takovým způsobem, aby byl paměťově nenáročný, tj. aby zbytečně nevznikaly nové objekty.

Doba čtení: 34 minut

Pohled pod kapotu JVM – blending a textury s alfa kanálem v knihovně SDLJava

Při práci s texturami je v mnoha aplikacích, ať již se jedná o 3D aplikace či o hry s 2D grafikou, nutné využívat textury, jejichž některé texely jsou poloprůhledné či zcela průhledné. V dnešním článku o jazyku Java si ukážeme, jak lze (nejenom) při texturování využívat takzvaný blending nabízený knihovnou SDLJava.

Doba čtení: 31 minut

Pohled pod kapotu JVM – práce s texturami v knihovně SDLJava

V dnešní části seriálu o programovacím jazyce Java i o virtuálním stroji Javy si popíšeme princip texturování implementovaný v knihovně OpenGL i způsob práce s texturami (načtení, použití, specifikace vlastností) v SDLJava s využitím tříd org.gljava.opengl.Texture a org.gljava.opengl.TextureFactory.

Doba čtení: 31 minut

Pohled pod kapotu JVM – složitější tělesa, textury a sprity v knihovně SDLJava

V dnešní části seriálu o jazyce Java i o virtuálním stroji Javy si řekneme, jak lze v knihovně SDLJava obejít funkce glBegin a glEnd z OpenGL 1 (které již nejsou v OpenGL 3.1 a ES oficiálně podporovány) pomocí polí vrcholů (vertex arrays). Seznámíme se také s třídou Sprite využitelnou nejenom ve hrách.

Doba čtení: 29 minut

Pohled pod kapotu JVM – volání funkcí OpenGL s využitím knihovny SDLJava

V dnešní části našeho předlouhého seriálu o programovacím jazyce Java i o virtuálním stroji Javy si ukážeme, jakým způsobem je možné využít knihovnu SDLJava pro získání takzvaného vykreslovacího kontextu OpenGL a jaké rozhraní nám SDLJava nabízí pro volání funkcí grafické knihovny OpenGL.

Doba čtení: 39 minut

Pohled pod kapotu JVM – nízkoúrovňový přístup k framebufferu i bitmapám s využitím knihovny SDLJava

V dnešní části seriálu o programovacím jazyce Java i o virtuálním stroji Javy si řekneme, jakým způsobem je možné s využitím knihovny SDLJava přistupovat k obsahu framebufferu i bitmap na úrovni pixelů. Sice se jedná o poměrně pomalé operace, ovšem v některých typech aplikací se jim nemůžeme vyhnout.

28. 1. 2014 0:00
Doba čtení: 29 minut

Pohled pod kapotu JVM – základní koncepty, na nichž je postavena knihovna SDLJava

V dnešní části seriálu o programovacím jazyce Java i o virtuálním stroji Javy si popíšeme základní koncepty používané při vykreslování s využitím knihovny SDLJava. Popíšeme si především možnosti třídy sdljava.video.SDLSurface, včetně metod využívaných při operacích typu BitBLT.

Doba čtení: 29 minut

Pohled pod kapotu JVM – využití knihovny SDLJava v graficky náročných aplikacích

V dnešní části seriálu o Javě a jejím i virtuálním stroji si řekneme základní informace o knihovně SDLJava, která umožňuje využívat SDL v javovských aplikacích. Knihovna může být použita například ve hrách, v nichž nemusí být grafický výkon dosahovaný kombinací AWT+Java2D či Swing+Java2D vyhovující.

Doba čtení: 19 minut

Pohled pod kapotu JVM – double buffering v praxi (dokončení)

V dnešní části seriálu o jazyce Java i o virtuálním stroji Javy dokončíme popis způsobů využití double bufferingu v javovských aplikacích založených na knihovnách AWT či Swing. Ukážeme si taktéž způsob využití třídy BufferStrategy při explicitním vytvoření zadního bufferu, a to i v celoobrazovkovém režimu.

Doba čtení: 20 minut

Pohled pod kapotu JVM – double buffering v praxi

V dnešní části seriálu o programovacím jazyce Java i o virtuálním stroji Javy si popíšeme a na několika demonstračních příkladech ukážeme, jakým způsobem je možné při vykreslování využívat double buffering, což může vést ke značnému urychlení celé graficky náročné aplikace či k zamezení nežádoucích vizuálních chyb.

Doba čtení: 24 minut

Pohled pod kapotu JVM – bitmapy typu BufferedImage a VolatileImage v celoobrazovkových režimech

V dnešní části seriálu o programovacím jazyce Java i o virtuálním stroji Javy si na čtveřici demonstračních příkladů ukážeme, jakým způsobem je možné využít bitmapy (rastrové obrázky) typu BufferedImage a VolatileImage v celoobrazovkových (exkluzivních) grafických režimech, a to včetně podpory průhlednosti.

Doba čtení: 28 minut

Pohled pod kapotu JVM – vykreslování bitmap typu BufferedImage a VolatileImage

V dnešní části seriálu o programovacím jazyce Java i o virtuálním stroji Javy si řekneme, jaké výkonnostní problémy mohou doprovázet použití bitmap typu BufferedImage při vykreslování na obrazovku a jak lze výkonnost grafické aplikace (typicky hry) v některých případech vylepšit použitím bitmap typu VolatileImage.

Doba čtení: 32 minut