1. Java / Говнокод #19858

    −27

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    import java.lang.reflect.Field;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            Class cache = Integer.class.getDeclaredClasses()[0];
            Field c = cache.getDeclaredField("cache");
            c.setAccessible(true);
            Integer[] array = (Integer[]) c.get(cache);
            array[132] = array[133];
    
            System.out.printf("%d",2 + 2);
        }
    }

    Выведет 5!

    Запостил: UsernameAK, 22 Апреля 2016

    Комментарии (20) RSS

    • Это доказывает, что сама жаба тоже говнокод!
      Ответить
      • Это доказывает, что рефлексия говно, а жаба говно по другим причинам
        Ответить
    • Ибо нехуй делать так. Кстати, в Шарпике можно так же, но со строками, через fixed(char* pointer = string)
      Ответить
      • И что тут похожего?

        fixed(char* pointer = string)

        просто запретит сборщику мусора перемещать строку
        Ответить
        • И даст возможность запороть литерал к хуям. Вплоть до неопределённого поведения.
          Ответить

          • понял

            class Program
                {
                    static void Main(string[] args)
                    {
                        DoSmth("cool");
                        Console.WriteLine("cool");
                    }
            
                    static unsafe void DoSmth(string str)
                    {
                        fixed (char* cPointer = str)
                        {
                            *(cPointer) = 'd';
                            *(cPointer+1) = 'i';
                            *(cPointer+2) = 'c';
                            *(cPointer+3) = 'k';
                        }
                    }
                }


            http://download.hdd.tomsk.ru/preview/haeeyhga.jpg
            Ответить
          • литерал не нужен
            Ответить
    • Четвёрку любой дурак подменит. А вы подмените число 265!
      Ответить
    • Переопределите +
      Ответить
    • Java не нужна
      Ответить
    • Это даже хуже чем #define true 0
      Ответить
      • Это хуже чем #define 4 5
        Ответить
      • Причём работается только при приведении int в Integer
        Ответить
        • int не нужен
          Ответить
          • Или создать Integer сразу. Ну вообще, эта шняга нужна для оптимизации Integer'а в диапазоне byte'а, используя при создании для всех одинаковые инстансы
            Ответить

    Добавить комментарий