Voodoo-Kiste

Aus Byte-Welt Wiki
Wechseln zu: Navigation, Suche

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

        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!

Integer-Magic Level 1

Es folgt ein mächtiger Kniff aus der Java-Voodookiste mit anschließendem Brain**** am Ende:

        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 ;)


Byte-Magic Level 1

Zur Abwechslung der Grundkurs Byte-Magic für Level 1 Wizards

        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 :)

Write-through-Magic Level 1

Es folgt ein kleiner Ausflug in die Kunst des Durchschreibenden-Voodoozaubers von Ank-Pheng.

        // 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 ;)