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

    −28

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    public static class ReadFileThread extends Thread implements ReadFileInterface
        {
            private String fullFileName;
            private String result = "";
    
            @Override
            public void setFileName(String fullFileName)
            {
                this.fullFileName = fullFileName;
            }
    
            @Override
            public String getFileContent()
            {
                return result;//.substring(0);//(0, result.length() - 1);//не понимаю что это и нахуя
            }
    
            @Override
            public void run()
            {
                try
                {
                    BufferedReader reader = new BufferedReader(new FileReader(fullFileName));
                    String str;
                    while ((str = reader.readLine()) != null)
                    {
                        result += str + " ";
                    }
                    reader.close();
                }
                catch (IOException e)
                {
                }
            }
        }

    Действительно, а накуя?

    Запостил: 3_dar, 16 Марта 2016

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

    • > extends Thread

      Это уже ГК, честно говоря.
      Ответить
      • Не пишу на Java. Чем это плохо?
        Ответить
        • Не писать на Java - это хорошо.
          Ответить
          • И это сказал крестовик -затейник
            Ответить
            • Чёто я там запятой не вижу. После слова "Не".

              И ударения в слове "писать" кстати тоже.
              Ответить
              • Что-то я не вижу эмоциональной окраски своего комментария
                Ответить
              • Годно. Инвертировать смысл комментария Борманда дважды с помощью преобразований, не являющихся взаимно обратными - это сильно.
                Ответить
          • а вроде бы приличный человек с виду, а такую хуйню пишешь

            джава это очень неплохой язык и довольно симпатичная VM, причем кросс-платформенная

            Просто этот код писали или 15 лет назад или его писал педераст
            но жаба не виновата
            Ответить
            • Жаба может и стала красивой в 8-ой версии, но энтерпрайзу до нее еще лет 10 идти.
              Ответить
              • ну да, очень красивой
                тайп интерференс нету
                быстрого способа описания структур (финал поля и геттеры и конструктор) нету
                много чего нету

                но Вы правы, да
                интерпрайз до сих пор сидит на шестерке
                Ответить
                • Зачем всё это когда можно просто
                  try
                  {
                      return true;
                  }
                  finally 
                  {
                      return false;
                  }
                  Ответить
                • >быстрого способа описания структур (финал поля и геттеры и конструктор) нету

                  lombok спасает.
                  Ответить
                • > быстрого способа описания структур (финал поля и геттеры и конструктор) нету
                  В эклипсе есть кнопочка.
                  Ответить
                  • кнопочка есть и в идее

                    кстати, видели как аттачд проперти делаются в C#?
                    там надо 100500 букв писать
                    правда, в студии есть темплейты
                    Ответить
        • Плохо нарушением принципа единственности ответственности. Есть поток и есть объект с блоком кода, выполняемым в потоке, По правилам хорошего тона нужно создавать поток конструктором Thread с параметром типа Runnable.
          Ответить
          • по правилам хорошего тона не нужно вообще напрямую создавать треды
            нужно использовать экзекуторы

            и вообще: код должен быть асинхронным и параллельным, но без прямого управления потоками
            Ответить
    • Видимо, пытался типа создать глубокую копию для потокобезопасности?
      Ответить
      • >>>0, result.length() - 1
        не... отрезать последний пробел хотел.
        а вот глубокую копию, в смысле по-копировать набор char, substring может сделать только в новых версиях java. раньше substring работал за O(1).
        Ответить
    • >> String getFileContent

      >> не понимаю что это и нахуя

      вон из профессии
      Ответить
      • ну почему сразу вон?
        Человек просто не знает что такое String, что такое метод, и по-английски тоже читать не умеет

        подумаешь
        Ответить
    • >extends Thread
      >result += str + " ";
      >reader.close();
      Какая эталонная мерзость, а.
      Ответить
    • https://gist.github.com/Vox1oot/9150852
      Ответить
    • while ((str = reader.readLine()) != null)
                      {
                          result += str + " ";
                      }

      O(n^2). Вот до чего жаваблядей отсутствие перегрузки операторов доводит.
      Ответить
      • Хочешь сказать что это реализуется также как и

        result = result + str + " ";

        ?
        Ответить
      • причем O и причем перегрузка операторов, дурачок?
        ты опять пишешь чушь чтобы умным выглядеть?

        Признайся, ты и программист-то постольку-поскольку
        Ответить
        • Со стрингбилдером +=, увы, не работает. А вообще, купи себе мозги.
          Ответить
          • повторяю свой вопрос:

            как изменится скорость алгоритма в языке где есть перегрузка операторов?
            что? нечего сказать? всосал, да?
            Ответить
            • Если бы у стрингбилдера был бы +=, то его бы юзали вместо String. А вообще, иди нахуй.
              Ответить
              • нет
                Ответить
                • Что нет - нахуй не пойдешь? :)

                  Есть какая-то причина в примере выше юзать String с O(n^2)?
                  Ответить
                  • Если бы у стрингбилдера был бы +=, то его бы юзали вместо String.
                    Если бабушка была бы дедушкой.
                    Нет. Stringbuilder рекомендуют использовать для большого количества строк. s1+s2+s3 будет быстрее чем через sb.
                    Вообще, кажется, в джавке вся конкатенация превращается в стрингбилдер, в шарпах же buffer.memcpy.

                    Где ты там квадрат увидел?
                    Ответить
                    • > вся конкатенация
                      Емнип, не вся, а только в одном стейтменте. Т.е. конкатенация в цикле таки намотает на O(iterations * chunk_length).
                      Ответить
                    • Здесь увидел: https://www.google.de/search?q=сложение+строк+квадратичное+вре мя первая ссылка
                      Ответить

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