Neoptimalizovat, ale…

…ale některé věci můžem dělat lépe. Při sledování jednoho výborného videa Java Puzzles jsem si uvědomil, jak málo toho vím a jak bez větší námahy můžem napsat aspoň trošku efektivnější kód. Proto jsem se začal prohrabával kódem mým i kolegů a narazil jsem na 3 často se opakující věci (chybky) u často používaného kódu. Spojování […]

Silvestrovská hádanka

Jsem přesvědčen, že všichni čtenáři mého blogu umějí sčítat a ovládají šestnáctkovou soustavu a věřím, že si poradí i se sčítáním v šestnáctkové soustavě. V tomto článku se na jedno takové sčítaní podíváme. Pro sčítání použijeme třídu Summator. Sčítance budou v atributech x a y a výsledek v atributu result. Samotné sčítání probíhá v metodě […]

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í…

RefactoringNG: pohled pod kapotu

V tomto článku se podíváme na to, jak je implementován modul RefactoringNG, a vysvětlíme si syntaxi jeho refaktorizačních pravidel. Překladač javac Nejprve něco o tom, jak funguje překladač javac. Překladač zpracovává zdrojový kód v několika krocích. Nejprve se text převede na posloupnost lexikálních symbolů. Např. class Main { } se převede na KEYWORD_CLASS, IDENTIFIER, LEFT_BRACE, […]

RefactoringNG: pohled pod kapotu

V tomto článku se podíváme na to, jak je implementován modul RefactoringNG, a vysvětlíme si syntaxi jeho refaktorizačních pravidel. Překladač javac Nejprve něco o tom, jak funguje překladač javac. Překladač zpracovává zdrojový kód v několika krocích. Nejprve se text převede na posloupnost lexikálních symbolů. Např. class Main { } se převede na KEYWORD_CLASS, IDENTIFIER, LEFT_BRACE, […]

Devoxx 2010

autor: Jozef Chocholáček Možná to ještě nevíte, ale téměř polovina týmu, který se stará o fungování (a rozvoj) JBoss Community služeb na doméně jboss.org, sídlí v brněnské pobočce Red Hatu. Protože zbytek týmu je rozstrkaný po zbytku severní polokoule (Varšava, Švýcarsko a Texas), je vhodné se jednou za rok sejít i face-to-face, aby člověk věděl, […]

Devoxx 2010

autor: Jozef Chocholáček Možná to ještě nevíte, ale téměř polovina týmu, který se stará o fungování (a rozvoj) JBoss Community služeb na doméně jboss.org, sídlí v brněnské pobočce Red Hatu. Protože zbytek týmu je rozstrkaný po zbytku severní polokoule (Varšava, Švýcarsko a Texas), je vhodné se jednou za rok sejít i face-to-face, aby člověk věděl, […]

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) –…

RefactoringNG: evoluce rozhraní

V tomto článku si ukážeme použití RefactoringNG při evoluci rozhraní. Jde o problém, který popisuje Dagi. Dejme tomu, že ve verzi 1.0 našeho API máme rozhraní Plugin: public interface Plugin { … } Ve verzi 2.0 přidáme do tohoto rozhraní metodu go: public interface Plugin { … void go(); } Tato změna vyžaduje, aby každý […]

Plzeňské setkání CZJUG: 7. prosince 2010

Česká Java Users Group (CZJUG) a Platforma informačních technologií (PIT) vás zvou na Plzeňské setkání České Java Users Group v úterý 7. prosince 2010 od 17:00 hodin v areálu Západočeské univerzity v Plzni, Univerzitní 22, posluchárna UP 101 Na programu jsou dvě přednášky: Android Kick Start Tomáš Zvěřina, Multimedia atelier, s.r.o. Všechno co jste kdy […]

RefactoringNG: evoluce rozhraní

V tomto článku si ukážeme použití RefactoringNG při evoluci rozhraní. Jde o problém, který popisuje Dagi. Dejme tomu, že ve verzi 1.0 našeho API máme rozhraní Plugin: public interface Plugin { … } Ve verzi 2.0 přidáme do tohoto rozhraní metodu go: public interface Plugin { … void go(); } Tato změna vyžaduje, aby každý […]