Grafická uživatelská rozhraní v Javě

GJAddr

Otázky

Groovy je dynamicky jazyk pro JVM
Každý Java program je portovatelný na všechny platformy bez změny kódu
Java Community Process je proces použitý pro vývoj různých částí Java platformy
Voláme explicitně finalize abychom se zbavili objektů, které nepotřebujeme
Java 3D je Java specifikace – Java SE a Java EE
Java používá nativní délky integrálních datových typů na každé platformě
JIT kompilace je schopnost of JVM
Exisuje rozhraní Main, která obsahuje statickou metodu main
goto v Javě
System.out objekt má metodu println
System.in je InputStream
Zdrojový kód top-level třídy Foo musí být uložen v souboru, který se jmenuje Foo.java
Statická metoda třídy může být zavolána, pouze když je vytvořen alespoň jeden objekt
Slovo ref v Javě
Java volání se volá vždy hodnotou. Každý objekt, který je předán hodnotou, se rekurzivně kopíruje.
Není možné předat objekt v Jave do funkce (pouze primitiva a reference)
public, protected, private, shared ✘ (shared není)
Objekty z wrapperu tříd (integer) jsou neměnitelné
Generický typ kontrolován pouze při kompilaci
V jednom catch bloku je možné chytat více výjimek ✔ (Java 7)
Pro propagaci výjimky se požívá slovo rethrow
compareTo metoda vrací boolean
Výraz str+=„“ změní hodnotu objektu referencovaného str ✘ (vytvoří nový objekt)
Každý objekt v Javě má metodu toString
java.io.File má metody read a write ✘ (potřebný stream)
Abstraktní třída java.io.Reader čte character stream
InputStream čte streamy znaků
InputStreamReader konvertuje podle kódování (utf8)
java.util.Set<A,B> je interface, který obsahuje metodu set(A key, B value)
HashSet a TreeSet jsou různé implementace Set rozhraní
Collections v java.util jsou synchronizované
Proces je vykonáván ve vlastním adresovém prostoru
Vlákna v proce sdílí svůj adresový prostor
Je možné vytvořit vlákno implementováním interface Runnable
K vytvoření vlákna se musí dědit třída Thread
Každé vlákno v Javě má metody start, run a join
Je bezpečné interruptovat vlákno kdykoliv, JVM se o to postará
Každý objekt implemetuje monitor
Zámek monitoru je reentrantní
Pro synchronizaci používáme funkci signal, ta probudí vlákno, které zavolalo funkci wait ✘ (funkce notify, ne signal)
Vytvoření synchronizované struktury je v Jave možné
V AWT vypadají všechny objekty stejně ✘ (Swing ano)
Swing používá nativní widgety ✘ (AWT ano)
Hlavní aplikační okno ve Swingu vytváříme jako instanci javax.swingJFrame přes statickou metodu javax.swing.Factory
Definuje Swing v XML
Zavření JFrame ukončí defaultně celou aplikaci
Existuje 5 layout managerů
Je možné iterovat přes Swing widgety, každý iterátor má funkcí hasNext, next
AbstractTableModel definuje getColumnCount, getRowCount a getValueAt
K zachycení události po kliku na tlačítko implementuje ActionListener rohraní a actionPerformed
setActionListener
Základní třída pro kreslení je Graphics2D
k vykreslení vycentrovaného stringu uvnitř rectanglu použijeme Rectangle.Center
paralelní čáry v obrázku mohou být překříženy při provedení affiní transformace
obrázek s bufferem je reprezentován BufferedImage
java io podporuje gif, png, jpeg a bmp defaultně
affiní transformace nedovolu perspektivní projekti
v awt je možné přetypovat grapgics na graphics2d
Grapgics2D má metodu draw(Shape s)
createGraphics
BufferedImageOp je rozhraní k ukládání a načítání obr.
kontejnery jsou EJB, App Client a Applet container
web modul má extension war, EJB modul ear a App Client jar
marker má jeden parametr do anotace
pro okmžitou valuaci #{}
#{object.method} a #{object[„method“} je stejné
cgi skripty sdílí adr prostor
httpServlter je super class
pro vytvoření HTML se používá PrintWriter
HttpServletRequest drží parametry webové stránky
jsp soubor musí mít ext jsp
jsp jsou kompilovány na servletu
jsp skriptovací elementy jsou deklarace, expressions a kod
komentáře v jsp jsou jako v html
direktiva include v jsp je pro importovani moduu ✔ (ne import)
validátor může být použit pro konverzi stringu na int
valueChangeListener je třídá k handlování změn v jsf ✘ (je to rozhraní)
v jsf požíváme URLRedirectException pro přesměrování stránky ✘ (faces.xml)
kařdá bean musí být deklarovaná v XML konf. souboru
tři typy session bean - stateless, statefull a message driven ✘ (message driven ne, ale singleton ano)
stateless session bean jsou funkce @PostConstruct a @PreDestroy
statefull session bean může implementovat- @PreActivate
použití @Local rozhraní pro entr. app client zajištuje že klient běží ve stejné jvm jako ejb
message driven beans používají jms jako transport layer
pro generování klíčů se používá @Automatic
createQuery vytvoří klasickou sql query
beany které mají named anotation můžou být zpřístupněny přes webovou stránku
@new anotace zajistí, že se bean vytvoří nová
interceptrors-to-intercepted cíle jsou many to many
zprávy v java restful services jsou ve dormátu soap
jersey je implementace jax-ws
entry point v gwt musí obsahovat public static void main funkci
v gwt může být rznými prohlížeči různý kod
development ode gwt má javascript debugger ✘ (javovský)
v gwt nemohou být použita vlákna
gwt objekty jsou stylované v css
build.xml dependecies musí být specifikován dřív než cíl
unit test musí implementovat main
maven projekt soubor pom.xml může obsahovat aresy serverů