Trivia question – “Finally”

Here is a confusing question – what does the next code prints? public static void doStam() { try { doExcption(); return; } finally { System.out.println(“Finally”); } } public static void main(String[] args) { doStam(); } public static void doExcption() { String [] stam = new String[0]; //purpose exception stam[1].toString(); } Answer: Finally Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: …

Java Interface rules

Let’s start with a short Java question: Bellow you can see the interface ‘Test’. Which lines in that interface will be rejected by the compiler? The answer is: lines: 7,8,9,10 I am sure that even many of the experienced java developers will not have a 100% success answering this question because it can be confusing. 1, 2, 3 and 4 are actually all the same – only constants are allowed and by default they are. For that reason, 10 is not allowed. 5, 6 are the same – only public and protected methods are allowed. By default they are public. In short these are the rules for interfaces: Member variables Can be only public and are by default. By default are static and always static By default are final and always final Methods Can be only public and are by default. Can NOT be static Can Not be Final