• Контракт equals и hashCode?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    так как вроде сделать простой математический расчет по формуле быстрее, чем сравнивать по equals (но это не точно)

    Нет, выполнить хэширование не быстрее. Искать по хэшу быстрее, чем обходить всю коллекцию и выполнять equals с каждым элементом.

    Либо же сначала сравнивают через equals (как пишут во многих источниках)?

    Не читайте таких источников, они пишут чушь.
    Ответ написан
    2 комментария
  • Стоит ли учить Kotlin?

    @nrgian
    Изначально с программированием я не в ладах, на учебе была Java, был С++, C#. Но ни одни из них меня не зацепил, не особо хотелось ими заниматься.


    Не в ладах - полно и других профессий, кроме программистов.

    А язык программирования учится очень легко.

    Поэтому особого значения он и не имеет.
    Значение имеют парадигмы, концепции, принципы, паттерны.

    Именно они и учатся сложно.
    Но, одновременно, зато они переходят из языка в язык.
    Выучил первый язык - легко пойдет второй, а третий - вообще влёт.

    А вот есть вариант с котлином. Я очень люблю копаться в android смартфоне (начиная с прошивки, ядер, рутов и т.д., заканчивая работой с .apk файлами на патчи лицензии, взлом премиум фишек в бесплатном софте и т.д.), а Android судя по последней конференции гугл будет плавно переходить на котлин, и данный ЯП сейчас в приоритете.
    Впереди свободное лето и уже хотелось бы найти себя.


    Еще раз:

    Собственно сам язык программирования - вторичен.
    Вы как то слишком уж много значения уделяете тому, что "выучить тот язык или выучить этот язык".

    Первично - собственно умение программировать.
    Это от языка слабо зависит.

    Если вам концепции хорошо знакомы - то на очередном новом языке вы можете уже и через день программировать начать.

    Если вы собираетесь заточиться на Android - то вам придется столкнуться и с Java и с Kotlin.
    С обоими. И много.

    Но тут смотря в какой именно сфере Android - где-то там есть и С и C++.
    А где-то с Андроидом придется столкнуться и с C# (Unity) и с Dart (Flutter) и пр.

    Это я так написал - для тех, кому действительно нужно.
    В вашем случае согласен с
    sim3x
    Нет
    Оно вам не нужно


    Ибо вы или чем-то уже занимаетесь.
    Или оно вам не нужно.

    Я очень люблю копаться в android смартфоне (начиная с прошивки, ядер, рутов и т.д., заканчивая работой с .apk файлами на патчи лицензии, взлом премиум фишек в бесплатном софте и т.д.),


    Полагаю, что вас просто заинтересовал какой-то один из аспектов в компьютерной технике.
    Ну а что - "крякать игры" это тоже интересно.
    Однако при чем тут собственно программирование?

    Как именно вы это делаете?
    Просто накладываете патчи, созданные другими?
    Так это вообще не программирование.

    Крякайте игры, самостоятельно декомпилируя разбирая логику их работы? Поздравляю, с программированием вы уже разобрались.

    Патчи ядра - если вы хотите понимать суть - это язык С.
    Патчи функционала Android, патчи игр - это Java/Kotlin/Unity прежде всего.

    Это если вы эти патчи собираетесь создавать самостоятельно.

    Обратите внимание, речь не об применении уже кем-то созданных патчей - то своем другой уровень.
    Им может заниматься и "продвинутая домохозяйка".
    Программирования тут нет от слова "вообще".
    Ответ написан
    Комментировать