java professionals community by meetup quiz - october 2015

23
Java Professionals Community BY Celebrating anniversary!

Upload: bahdan-siamionau

Post on 16-Apr-2017

227 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Java Professionals Community BY meetup quiz - October 2015

Java Professionals Community BY

Celebrating anniversary!

Page 2: Java Professionals Community BY meetup quiz - October 2015

Призы от партнеров:

Page 3: Java Professionals Community BY meetup quiz - October 2015

1a. Reflection

Page 4: Java Professionals Community BY meetup quiz - October 2015

import java.lang.reflect.Field;import java.lang.reflect.Modifier;public class C_Reflection { public static final String s = "one"; public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { Field field = C_Reflection.class.getField("s"); int modifiers = field.getModifiers(); Field modifierField = field.getClass().getDeclaredField("modifiers"); modifiers = modifiers & ~Modifier.FINAL; modifierField.setAccessible(true); modifierField.setInt(field, modifiers); field.set(null, "two"); System.out.println(s); }}

Page 5: Java Professionals Community BY meetup quiz - October 2015

import java.lang.reflect.Field;import java.lang.reflect.Modifier;public class C_Reflection { public static final String s = "one"; public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { Field field = C_Reflection.class.getField("s"); int modifiers = field.getModifiers(); Field modifierField = field.getClass().getDeclaredField("modifiers"); modifiers = modifiers & ~Modifier.FINAL; modifierField.setAccessible(true); modifierField.setInt(field, modifiers); field.set(null, "two"); System.out.println(s); }}

A. oneB. twoC. NoSuchFieldExceptionD. IllegalAccessException

Page 6: Java Professionals Community BY meetup quiz - October 2015

1b. Classloading

Page 7: Java Professionals Community BY meetup quiz - October 2015

class Parent { public static final String value = "Parent value"; static { System.out.println("Parent static"); }} class Child extends Parent { static { System.out.println("Child static"); } { System.out.println("Child initializer"); }} public class A_Classload { public static void main(String[] args) { System.out.println(Child.value); }}

Page 8: Java Professionals Community BY meetup quiz - October 2015

class Parent { public static final String value = "Parent value"; static { System.out.println("Parent static"); }} class Child extends Parent { static { System.out.println("Child static"); } { System.out.println("Child initializer"); }} public class A_Classload { public static void main(String[] args) { System.out.println(Child.value); }}

A. Parent valueB. Parent static Parent valueC. Parent static Child static Parent valueD. Parent static Child static Child initializer Parent value

Page 9: Java Professionals Community BY meetup quiz - October 2015

1c. Lists

Page 10: Java Professionals Community BY meetup quiz - October 2015

import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class D_Lists { public static final int MAX_VAL = 10000; public static void main(String[] args) { List<Integer> linkedList = new LinkedList<>(); List<Integer> arrayList = new ArrayList<>(); for(int i = 0; i < MAX_VAL; i++) { linkedList.add(i); arrayList.add(i); } long linkedListTime = System.nanoTime(); for(int i = 0; i < MAX_VAL; i++) { linkedList.add(MAX_VAL/2, i); } linkedListTime = System.nanoTime() - linkedListTime; long arrayListTime = System.nanoTime(); for(int i = 0; i < MAX_VAL; i++) { arrayList.add(MAX_VAL/2, i); } arrayListTime = System.nanoTime() - arrayListTime; if (arrayListTime < linkedListTime) { System.out.println("ARRAY LIST WINS!"); } else { System.out.println("LINKED LIST WINS!"); } }}

Page 11: Java Professionals Community BY meetup quiz - October 2015

import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class D_Lists { public static final int MAX_VAL = 10000; public static void main(String[] args) { List<Integer> linkedList = new LinkedList<>(); List<Integer> arrayList = new ArrayList<>(); for(int i = 0; i < MAX_VAL; i++) { linkedList.add(i); arrayList.add(i); } long linkedListTime = System.nanoTime(); for(int i = 0; i < MAX_VAL; i++) { linkedList.add(MAX_VAL/2, i); } linkedListTime = System.nanoTime() - linkedListTime; long arrayListTime = System.nanoTime(); for(int i = 0; i < MAX_VAL; i++) { arrayList.add(MAX_VAL/2, i); } arrayListTime = System.nanoTime() - arrayListTime; if (arrayListTime < linkedListTime) { System.out.println("ARRAY LIST WINS!"); } else { System.out.println("LINKED LIST WINS!"); } }}

A. ARRAY LIST WINS!B. LINKED LIST WINS!C. StackOverflowExceptionD. Не скомпилируется

Page 12: Java Professionals Community BY meetup quiz - October 2015

1. Final

Page 13: Java Professionals Community BY meetup quiz - October 2015

import java.util.Random;public class P_Even { public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < 100; i++) { int x = Math.abs(random.nextInt()); if (isEvenBase(x) != isEvenTest(x)) { throw new RuntimeException("Fail! " + x); } } } // do not ban: 'x', '(', ')', '=', '0', '1', '2' // ban: static boolean isEvenBase(int x) { return x % 2 == 0; } static boolean isEvenTest(int x) { return true; }}

Page 14: Java Professionals Community BY meetup quiz - October 2015

2. Complexity

Page 15: Java Professionals Community BY meetup quiz - October 2015

import java.math.BigInteger;import java.security.SecureRandom;public class R_Complexity { public static final String NEARLY_INDEFINITE = "..."; public static void main(String[] args) { System.out.println(foo(1)); } public static String foo(int n) { String temp = ""; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { temp += NEARLY_INDEFINITE.charAt(j); } } return temp; }}

Page 16: Java Professionals Community BY meetup quiz - October 2015

import java.math.BigInteger;import java.security.SecureRandom;public class R_Complexity { public static final String NEARLY_INDEFINITE = "..."; public static void main(String[] args) { System.out.println(foo(1)); } public static String foo(int n) { String temp = ""; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { temp += NEARLY_INDEFINITE.charAt(j); } } return temp; }}

A. O(n)B. O(n^2)C. O(n^4)D. O(n!)

Page 17: Java Professionals Community BY meetup quiz - October 2015

3. Exception

Page 18: Java Professionals Community BY meetup quiz - October 2015

import java.util.Arrays;import java.util.ConcurrentModificationException;import java.util.List;public class B_Exception { public static void main(String[] args) { List<String> list = Arrays.asList("one", "two"); try { for (String s : list) { list.remove(s); } } catch (ConcurrentModificationException ex) { System.out.println("1"); } catch (RuntimeException ex) { System.out.println("2"); } catch (Exception ex) { System.out.println("3"); } catch (Throwable ex) { System.out.println("4"); } }}

Page 19: Java Professionals Community BY meetup quiz - October 2015

import java.util.Arrays;import java.util.ConcurrentModificationException;import java.util.List;public class B_Exception { public static void main(String[] args) { List<String> list = Arrays.asList("one", "two"); try { for (String s : list) { list.remove(s); } } catch (ConcurrentModificationException ex) { System.out.println("1"); } catch (RuntimeException ex) { System.out.println("2"); } catch (Exception ex) { System.out.println("3"); } catch (Throwable ex) { System.out.println("4"); } }}

A. 1B. 2C. 3D. 4

Page 20: Java Professionals Community BY meetup quiz - October 2015

Generics

Page 21: Java Professionals Community BY meetup quiz - October 2015

import java.util.ArrayList;import java.util.Collection;import java.util.List;public class E_Generics { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); insert(list, "123"); System.out.println(list); } public static void insert(List l, Object o) { l.add(o); }}

Page 22: Java Professionals Community BY meetup quiz - October 2015

import java.util.ArrayList;import java.util.Collection;import java.util.List;public class E_Generics { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); insert(list, "123"); System.out.println(list); } public static void insert(List l, Object o) { l.add(o); }}

A. []B. [123]C. ClassCastExceptionD. Не скомпилируется

Page 23: Java Professionals Community BY meetup quiz - October 2015

Спасибо!facebook: Богдан Семёнов

twitter: bsiamionau