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.

JamVM aneb alternativa k HotSpotu (nejenom) pro embedded zařízení, tablety a chytré telefony

V sedmnácté části poněkud nepravidelně vycházejícího seriálu o programovacím jazyce Java a o vlastnostech JVM si řekneme základní informace o projektu JamVM. Pod tímto názvem se skrývá virtuální stroj Javy představující alternativu ke známému HotSpotu pocházejícímu z dílny firmy Sun a později Oracle.

Doba čtení: 21 minut

Podpora skriptovacích jazyků v JDK6 a OpenJDK6 (3.část)

Dnes se již potřetí vrátíme k aplikačnímu programovému rozhraní (API) navrženého v rámci JSR 223, které slouží k podpoře skriptovacích jazyků běžících nad virtuálním strojem Javy. Zaměříme se na předávání hodnot (obecně objektů) mezi aplikací v Javě a skriptem s využitím sdílených pojmenovaných objektů.

Doba čtení: 25 minut

Podpora skriptovacích jazyků v JDK6 a OpenJDK6 (2.část)

V našem seriálu budeme pokračovat v popisu aplikačního programového rozhraní (API) navrženého v rámci JSR 223, které slouží k podpoře skriptovacích jazyků běžících nad virtuálním strojem Javy (JVM). Dnes se zaměříme především na podrobnější popis kooperace mezi aplikacemi v Javě a skripty v JavaScriptu.

Doba čtení: 23 minut

Podpora skriptovacích jazyků v JDK6 a OpenJDK6

Ve čtrnáctém článku o jazyce Java se seznámíme s API určeným pro práci se skripty napsanými v různých skriptovacích programovacích jazycích. Toto API bylo navrženo tak, aby byl způsob volání skriptů, předávání parametrů skriptům, získávání návratových hodnot i další činnosti prováděny jednotným způsobem.

Doba čtení: 21 minut

Využití skrytých vlastností JDK (1)

V dnešním článku o vlastnostech JDK 6 a JDK 7 si řekneme základní informace o jedné skryté (přesněji řečeno velmi málo zdokumentované a známé) vlastnosti nových verzí JDK. Jedná se o alternativní varianty tříd HashMap, LinkedHashMap a TreeMap uložené v archivu alt-rt.jar. Tyto třídy nabízí pro některé aplikace větší výkonnost.

Doba čtení: 16 minut

Monitorování procesů a správa paměti v JDK 6 a JDK 7 - využití large pages

Ve dvanácté části seriálu o vlastnostech JDK 6 a JDK 7 (samozřejmě včetně OpenJDK) si řekneme, z jakého důvodu může být v některých případech vhodné používat takzvané large pages, známé též pod názvem huge pages. Jedná se o technologii nabízenou některými novějšími procesory, která je podporována i Linuxem (konkrétně jádry 2.6.x) a samozřejmě i běhovým prostředím Javy.

Doba čtení: 14 minut

Monitorování procesů a správa paměti v JDK 6 a JDK 7 (5)

V jedenácté části seriálu o JDK 6 a JDK 7 (samozřejmě včetně OpenJDK) se opět budeme zabývat principem činnosti správců paměti a způsobům, jakými lze ovlivnit výkonnost virtuálního stroje Javy. Popíšeme si především rozdíl mezi různými správci paměti a zaměříme se na běh JVM na víceprocesorových počítačích.

Doba čtení: 19 minut

Monitorování procesů a správa paměti v JDK 6 a JDK 7 (4)

V desáté části seriálu o vlastnostech JDK 6 a JDK 7 si ukážeme způsob ovlivnění chování správců paměti pomocí parametrů, které je možné specifikovat při spouštění běhového prostředí Javy (JRE). Zaměříme se především na způsob nastavování velikostí paměťových oblastí, ze kterých se skládá halda (heap).

Doba čtení: 23 minut

Monitorování procesů a správa paměti v JDK 6 a JDK 7 (2)

V deváté části seriálu o vlastnostech JDK 6 a 7 se budeme zabývat především principem práce správců paměti. Řekneme si, jaké veličiny se při sledování chování aplikace v reálném provozu mohou měřit a jak jsou tyto veličiny ovlivněny nastavením parametrů správců paměti při spuštění prostředí Javy (JRE).

Doba čtení: 16 minut

Monitorování procesů a správa paměti v JDK6 a JDK7 (2)

V osmé části seriálu o vlastnostech JDK si ukážeme použití profileru, jenž je přímo součástí standardní instalace JRE. Také si řekneme, proč není vhodné, aby se v často volaném kódu spojovaly řetězce pomocí operátorů + a +=. V závěru se navíc seznámíme se základními způsoby implementace správců paměti.

Doba čtení: 18 minut

Monitorování procesů a správa paměti v JDK6 a JDK7 (1)

V sedmé části seriálu o vlastnostech JDK (samozřejmě včetně OpenJDK) si řekneme základní informace o správě paměti ve virtuálním stroji jazyka Java. Taktéž se seznámíme se základními způsoby monitorování procesů běžících v JVM – zaměříme se přitom (alespoň prozatím) pouze na nástroje, které jsou dostupné přímo v JDK6 a JDK7.

Doba čtení: 21 minut

Využití komprimovaných ukazatelů na objekty v JVM

V dnešní části seriálu o novinkách, které můžeme najít v syntaxi a sémantice programovacího jazyka Java i v jeho virtuálním stroji, si popíšeme vlastnost, která sice byla původně plánována až pro oficiální verzi JDK 7, ale nakonec ji mohou využít i programátoři a uživatelé používající JDK 1.6.0 14 a samozřejmě také OpenJDK 6. Jedná se o zavedení takzvaných komprimovaných ukazatelů na objekty, které lze používat na 64bitových platformách, včetně x86_64.

Doba čtení: 19 minut

Novinky v JDK 7 (5) – projekt Lambda a anonymní funkce v příkladech

V páté části seriálu o nových vlastnostech programovacího jazyka Java i jeho virtuálního stroje budeme pokračovat v popisu použití anonymních funkcí, které jsou implementovány v rámci projektu Lambda. Mezi typické možnosti využití anonymních funkcí patří implementace komparátorů, filtrů a podobně.

Doba čtení: 19 minut

Novinky v JDK 7 aneb mírný pokrok v mezích zákona – projekt Lambda

Ve čtvrté části seriálu o nových vlastnostech jazyka Java si řekneme o projektu Lambda, který sice není – a po přijetí plánu „B“ ani nebude – oficiální součástí JDK 7, ovšem tento projekt je možné poměrně snadným způsobem doinstalovat a odzkoušet i na současné verzi JDK 7 nebo OpenJDK 7.

Doba čtení: 18 minut

Novinky v JDK 7 (3) + co v JDK 7 naopak nenajdeme

Ve třetí části seriálu o nových vlastnostech programovacího jazyka Java i jeho virtuálního stroje dokončíme popis syntaktických a sémantických změn, které lze najít v JDK 7. Ve druhé části článku si navíc řekneme, na které změny budeme naopak muset počkat až do vydání JDK 8 (v ideálním případě bude tato verze k dispozici v polovině roku 2012) – kromě usnadnění práce s kolekcemi se například jedná o projekt Lambda, který poměrně zásadním způsobem rozšiřuje sémantiku Javy o anonymní funkce a uzávěry.

Doba čtení: 19 minut

Novinky v JDK 7 aneb mírný pokrok v mezích zákona (2)

Ve druhé části seriálu o nových vlastnostech programovacího jazyka Java i jeho virtuálního stroje, které jsou zařazeny do JDK 7, si popíšeme další rozšíření syntaxe a sémantiky Javy. Jedná se především o nový operátor nazvaný „diamant“ a taktéž o rozšířené možnosti bloku try-catch-delete.

Doba čtení: 25 minut

Novinky v JDK 7 aneb mírný pokrok v mezích zákona (1)

V tomto článku si popíšeme některé z nových vlastností programovacího jazyka Java i jeho virtuálního stroje, které jsou zařazeny do chystané verze JDK 7. Nebude se jednat pouze o stručný popis vlastností, protože se kromě zmínky o nových knihovnách, třídách a rozhraních budeme věnovat i rozšíření syntaxe a sémantiky Javy, a to s ohledem na to, jak se nová syntaxe/sémantika projevuje v generovaném bajtkódu.

Doba čtení: 17 minut