Voodoo-Kiste
Aus Byte-Welt Wiki
Version vom 8. August 2013, 17:49 Uhr von L-ectron-x (Diskussion | Beiträge)
Inhaltsverzeichnis
String-Magic Level 1
Der erste Eintrag der lustigen Java-Voodookiste widmet sich ganz einfach mal der wunderbaren Kunst der Stringkonkatenation. Ein wenig Mystery ist auch dabei, ganz bestimmt
<code=java>
System.out.println("funny concat : " + 1 + 1); // it's okay if you first think it's 2 System.out.println("stupid funny concat : " + + + + + + 1 + + + + 1); // <- yeah! wth? System.out.println("stupid funny concat : " +- + + +- + + -+-1 + + + + -+-1); // <- omg! wtf?!?!?! System.out.println("so nice :) : " + - - - - - - + 1 +- - - -1); // <- omfg!!! wtfh?!???!!! //System.out.println("never ever 1st :( : " ++ 1); // never ever, you cannot do so, never, believe it :) //System.out.println("never ever 2nd :( : " + -- 1); // absolutely no!
</code=java>
Integer-Magic Level 1
Es folgt ein mächtiger Kniff aus der Java-Voodookiste mit anschließendem Brain**** am Ende:
<code=java>
Integer i0 = 5000; Integer i1 = 5000; System.out.println(i0 == i1); // ok, we should know this is false, or not? Look at the end ;) System.out.println(i0.intValue() == i1.intValue()); // yeah, it's right mister // let's try smaller values i0 = 127; i1 = 127; System.out.println(i0.intValue() == i1.intValue()); // yeees sir! System.out.println(i0 == i1); // wth? i0 = -128; i1 = -128; System.out.println(i0 == i1); // wtfh?!?!?! // try this: give the VM the following VM-Argument -Djava.lang.Integer.IntegerCache.high=5001 // and things becomes very scary ;)
</code=java>
Byte-Magic Level 1
Zur Abwechslung der Grundkurs Byte-Magic für Level 1 Wizards
<code=java>
byte b = 1; // ok, it's nice too see //byte b = 128; // we know that's not compiling ;) //b = b + 127; // hey, we know this too :) it's absolutely safe, ever! b += 127; // but wth? b ++; // omg!!! b ++; // wtf?!?!? for(int i = 0; i < 169; i ++) { b ++; // yeah! } b --; System.out.println(b); // the solution of the biggest question ever! short s = 1; s = Short.MAX_VALUE; //s = s + 1; // yeah! it's not compiling mister ;) s += 1; // ok, we like bytes, we like you too! // and so on ... you already know the solution :) int i = 1; i = Integer.MAX_VALUE; i = i + 1; // don't be panic OO i = i + 10; // we like byte and short more than other numeric types ;) System.out.println(i); // it's something crazy... char c = 1; c = 65535; // yeah, you know the c64? //c = c + 1; // ok char, we like you too ;) don't compile this :) c ++; c ++; System.out.println((char) (c - Short.MAX_VALUE)); // because you're funny as bytes and shorts :)
</code=java>
Write-through-Magic Level 1
Es folgt ein kleiner Ausflug in die Kunst des Durchschreibenden-Voodoozaubers von Ank-Pheng.
<code=java>
// lets create a simple list List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); String[] array = list.toArray(new String[0]); // create an array from it System.out.println("1st list : " + list); // ok, i know i know! System.out.println("1st array-size: " + array.length); // yeah, i expected this ;) System.out.println("set 'a' to 'z' in list ..."); // ok chummer! list.set(0, "z"); System.out.println("1st list : " + list); // where's the trick here? System.out.println("1st array[0] : " + array[0]); // no trick! what you think? We don't summon demons or cast spells here, ever! ever ever! // let's create a simple array array = new String[]{"a", "b", "c"}; list = Arrays.asList(array); // create a list from it System.out.println("2nd list : " + list); // ok, i already know it! System.out.println("2nd array size: " + array.length); // yessss! what you expect here? System.out.println("set first element to 'z' in array ..."); // try it baby! try! array[0] = "z"; System.out.println("2nd array[0] : " + array[0]); // yeah! i know!!! System.out.println("2nd list : " + list); // omg!!! wtfh?!?!?! i can't believe... // believe the power of write-through magic ;)
</code=java>