====== Grafická uživatelská rozhraní v Javě ====== [[http://github.com/Pitel/GJAddr|GJAddr]] ===== Otázky ===== |[[wp>Groovy (programming language)|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''| ✘ | |''[[http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo%28T%29|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'' 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 #{}| ✘ | (dolar) |#{object.method} a #{object["method"} je stejné| ✔ | |cgi skripty sdílí adr prostor| ✘ | |httpServlter je super class| ✘ | (genericServlet) |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| ✘ | (java restful) |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ů| ✔ |