Az Oracle Certified Associate, Java SE 7 Programmer vizsga felkészülés során összeírtam egy rövid jegyzetet és 3 feladványt amit most megosztok veletek is, hátha hasznos lesz valakinek.
- A default package-ben lévő osztályok nem importálhatók
- A main() paramétere vararg is lehet: main(String ...args)
- A hozzáférés és nem hozzáférés módosítók felcserélhetők (pl.: public - static)
- && és || short-circuit operátorok (&, | pedig nem)
- Precedencia táblázat
- A Java Pass By Value-t használ!
- Hozzáférés módosítók (public, protected, default, private)
- Overloading vs Overriding
- Encapsulation, Information hiding
- Polimorfizmus
- A metódus argumentum és a metódus paraméter nem ugyanaz
- A változónevek karakterszáma tetszőleges
- A változónevekben lehetnek számok, de nem a legelső karakter helyen
-
A változóneveknél, a speciális karakterek közül csak az aláhúzás és a
valuta jel használható, akár a legelső karakter helyen is.
- Lokális változókhoz ill. metódus paraméterekhez nem adható meg hozzáférés módosító
- A vararg az utolsó paraméter lehet és csak egy definiálható metódusonként
- Ha nincs felhasználó által definiált konstruktor, akkor a fordító generál egy paraméter nélkülit
- A String objektum immutable
- A StringBuilder és a StringBuffer mutable
- "ORACLE".substring(2) -> ACLE
- "ORACLE".substring(2,4) -> AC
- A String trim metódusa a kezdeti és a végi white space karaktereket törli csak
- A StringBuilder-nek nincs trim metódusa
- new StringBuilder("0123456").replace(2,3,"ABCD") -> 01ABCD3456
- new StringBuilder("ABC").append("123456",1, 3) -> ABC23
- new StringBuilder("ABC").insert(1,true) -> AtrueBC
- new StringBuilder("ABC").insert(1,"123456",1,3) -> A23BC
- A tömb az egy objektum
- A tömb mérete mindig int típusú és 0 is lehet
- A List<String> list=new ArrayList<>(); is érvényes
- A String class-ban az equals() felül van definiálva, a StringBuilder-ben nincs
- A switch()-ben használható típusok: char, byte, short, int, String, enum
- Az interface-ben minden metódus public és abstract (mégha nincs is kiírva)
- Az interface-ben minden változó public, static, final (mégha nincs is kiírva)
- A finally blokk nem fut le System.exit() hívásnál és fatal error-nál sem
- Ha a catch blokknak van visszatérési értéke a finally blokk akkor is lefut
- Checked vs Unchechked Exceptions, Errors
- invalid ArrayList pozíció esetén -> IndexOutOfBoundsException
- invalid array pozíció esetén -> ArrayIndexOutOfBoundsException
- Ha egy static inicializáló blokkban dobódik bármilyen RuntimeException -> ExceptionInInitializerError
- Rekurzív végtelen hívásánál -> StackOverflowError
- A lokális változók nem kapnak alapértelmezett kezdő értéket
- while (false) {...} vagy for( int i = 0; false; i++) x = 3; -> Fordítási hiba
- A konstruktorok nem öröklődnek
- Short k = 9; Integer i = 9; System.out.println(k == i); // compile error
- 'b'+63+"a" : 161a
- int a = b = c = 100 -> invalid
- byte: -128 to 127
És végül a gyakorláshoz összeírtam három "mit ír ki" jellegű feladványt aminek a megoldását a cikk végén megtaláljátok!
1. Overriding and hiding methods
class A { int x = 10; static int y = 20; public void m1() { System.out.println("a"); } public static void m2() { System.out.println("b"); } } class B extends A { int x = 30; static int y = 40; public void m1() { System.out.println("c"); } public static void m2() { System.out.println("d"); } } class MyTest { public static void main(String[] args) { System.out.println(new B().x + ", " + new B().y); new B().m1(); new B().m2(); A a = new B(); System.out.println(a.x + ", " + a.y); a.m1(); a.m2(); } }
2. Initialization order
class AA { public AA() { System.out.println("AA constructor"); } static int i = 10; { i = 15; System.out.println("AA " + i); } static { System.out.println("AA static " + i); } } class BB extends AA { public BB() { System.out.println("BB constructor"); } static { i = 45; System.out.println("BB static " + i); } { i = 30; System.out.println("BB " + i); } } class MyTest { public static void main(String args[]) { BB m = new BB(); } }
3. Throws
import java.io.FileNotFoundException; import java.io.IOException; class Super { public Super() throws IOException { } public void m1() throws IOException { } } class Sub extends Super { public Sub() throws FileNotFoundException{ } public void m1() throws Exception { } }
És a válaszok:
1. Overriding and hiding methods
30, 40
c
d
10, 20
c
b
2. Initialization order
AA static 10
BB static 45
AA 15
AA constructor
BB 30
BB constructor
3. Throws
Compile error
throws FileNotFoundException -> throws Exception
throws Exception -> throws FileNotFoundException
Nincsenek megjegyzések:
Megjegyzés küldése
Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.