dJeez zei:
Welk(e) boek(en) is/zijn volgens u eigenlijk aan te raden? Dat kan nuttig zijn voor diegenen die het certificaat willen halen

.
Zonder Bavo's link aan te klikken weet ik zo al 100% zeker dat ik dat boek aanraad.
Ice zei:
Kunde zo eens wat voorbeelden geven van 'kleine grilligheden' ?
Tgohja, er zijn er eigenlijk genoeg. Dat wat Emerxill post bijvoorbeeld. Kleine uitbreiding daarop:
Integer i1 = 1000;
Integer i2 = 1000;
if(i1 != i2) System.out.println("different objects");
if(i1.equals(i2)) System.out.println("meaningfully equal");
Output?
Integer i3 = 10;
Integer i4 = 10;
if(i3 == i4) System.out.println("same object");
if(i3.equals(i4)) System.out.println("meaningfully equal");
Output?
Maar er zijn nog genoeg andere dingen. Fijnere toetsen van overloading/overriding/polymorfisme bijvoorbeeld.
Vb (geen zin om echte code te schrijven):
Klasse A (met methode testMethod() {print "A"}) )
Klasse B extends A (met methdoe testMethod() {print "B"}) )
Klasse C met overloaded methode die een A neemt (doFunny(A a){print "A"}), en overloaded methode die een B neemt (doFunny(B b){print "B"}.
Roep die methode aan met een A, je krijgt de A-methode van A.
Roep die methode aan met een B, je krijgt de B-methode van A.
Tot hiertoe logisch. Maar doe dan eens dit:
A a = new B();
Roep die methode dan aan met a. Wat krijg je dan? Je weet bijvoorbeeld dat als je op a testMethod aanroept, je "B" zal geprint krijgen. Maar wat met die methodes in C?
Genoeg mensen die hier fout gaan hoor
Widening, autoboxing, var-args: wat gebeurt bij aanroepen van allerhande overloaded methodes? Wie krijgt prioriteit? Niet moeilijk als je het weet, maar je moet het wel weten.
Maar dan heb je nog structurele dingen ook. Waarom is het dom om "string1" + "string2" + "string3" + "string4" te doen, bijvoorbeeld. Hoe iets deftig te serialiseren en deserialiseren. Generics, die veel verder gaan dan List<MyObject> te schrijven en te zeggen dat generics easy zijn en dat ge dat kunt. Toepassingen van equals() en hashcode(), contract tussen beiden, deftig implementeren. Ochja, er zijn er zo genoeg
Enfin, ik heb alleszins gemerkt dat ik na het grondig doorgaan van dat boek en het afleggen van het examen, ik over veel dingen niet meer moest nadenken waar anderen een spontane "huh?" gaven.