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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public int hashCode() {
            HashCode h = new HashCode();
            h.addValue(mFirst);
            h.addValue(mSecond);
            return h.hashCode();
        }

    Наалоцируем даже там, где нужны только примитивы

    https://github.com/Netflix/netflix-commons/blob/519178a/netflix-commons-util/src/main/java/com/netflix/util/Pair.java#L119-L124

    Запостил: Tike, 29 Июня 2023

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

    • Если бы ты сходил в https://github.com/Netflix/netflix-commons/blob/519178a/netflix-commons-util/src/main/java/com/netflix/util/HashCode.java
      то увидел что класс универсальный и поддерживает не только примитивы.
      Единообразие тем выгоднее, чем больше разработчиков контрибутят, а жидфликс немаленькая контора.
      Ну и то, что в JVM инстанцирование объекта более дешевая операция чем в С++ тоже широкоизвестный факт.
      Ответить
      • Там не надо инстанцировать объект вообще. Там хватит значения на стеке.

        Хотспот правда теоретически может сделать это сам (см. скаляризация), но гарантий никаких.
        Ответить
        • Дней без ответов уёбку: 0.
          Ответить
        • >>Хотспот правда теоретически может сделать это сам (см. скаляризация),

          сначала мы потупим охулион раз, а потом просрется джыд, и все исправит

          Почему нельзя было сделать хотя бы как в го: см escape analysis?
          Ответить
          • там и сделано через escape analysis. если кто и взял идею у другого, то не джава
            Ответить
            • только у го это делается в компайл тайме
              Ответить
        • Tike, welke niveau heb jij trouwens? Ik heb een discussieclub meegedaan
          Ответить
      • >>то увидел что класс универсальный и поддерживает не только примитивы.


        а почему нельзя сделать отдельную реализацию для примитивов, как в шарпе, расте или плюсах?
        ах да, я забыл, обобщенное программирование в джаве так не умеет

        >> в JVM инстанцирование объекта более дешевая операция чем в С++

        "инстанциирование объекта" в плюсах может быть совсем бесплатрной операцией, особенно если у тебя пустой констрктор. Время занимает выделение памяти некоторым видом аллокаторов, но в отличие от джавы создавать обхект можно и на стеке, выделяя память во время компиляции

        Джава так не умеет

        Зато джава умеет делать гц, и это совсем не бесплатная операция, особенно в интерактивных приложениях. Да, я всё знаю про небеса и поколения, но я видел дампы с GC pauses
        Ответить
        • Едет wordpress-программист в пояс-де, а колеса стучат >> >>
          Ответить
          • Едет wordpress-программист в "пояс-де", а колеса стуч Undefined index: my_index C:\wamp\www\mypath\index.php on line 11
            Ответить
        • А давно вы с осетинским козоёбом подружились?
          Ответить
    • Есть два проекта: проект1 и проект2. Какой мне выбрать?

      Только аргументированные ответы, пожалуйста!
      Ответить
      • Выбирай проект2. Если бы любил проект1, то остановился бы на нём изначально.
        Ответить

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