Ответы пользователя по тегу Java
  • Java Memory limit exceeded на олимпиадном программировании?

    @StainlessDespair
    В первом способе слишком много абстракций. Когда речь заходит о критической экономии памяти нужно сразу забывать про существовании Stream API, стараться не использовать autoboxing и пытаться эффективней использовать ресурсы. На то они и олимпиадные задачки, чтобы писать все сортировки руками вместо однострочных стримов и пр.

    Что можно сделать:
    • закрывать сканер после чтения (не закрыв он так и будет висеть у тебя в памяти, которой может не хватить допустим в середине алгоритма)
    • открывать writer в самом конце (тоже самое что и со сканером, тем более что он тебе абсолютно не нужен в начале выполнения)
    • заменить мапу на массив, убрать использование объекта Integer (со списком тоже желательно, но боттлнек твоего первого способа именно её использование, поэтому если заменишь правильно не сломав логику, то должно хватить.)
    • не использовать стримы


    По поводу подсчёта памяти сервером скорее всего просто запускают виртуалку с -Xmx16m параметром и реагируют на OutOfMemoryError, но это не точно.

    ps Ты не можешь сравнивать Integer таким образом a.getValue() != b.getValue(). Integer суть объект, нужно использовать equals. А ещё в задании сказано разделять числа в output пробелами, а не переходами на новую строку, но это так, к слову.
    Ответ написан
    2 комментария
  • Как получить фрагмент (все, что после #) из URI на apache http server?

    @StainlessDespair
    request.uri().getFragment​()

    Для того чтобы разбить на части можешь использовать метод split().
    Ответ написан
    Комментировать
  • Как сделать правильный выбор между C# и Java?

    @StainlessDespair
    Изучение двух языков одновременно в принципе возможно. Но если ты нацелен на работу, то забудь про это, так как знание синтаксиса языка мало что тебе даст. Нужно изучать технологии. И у java, и у c# есть начальный стек который рекомендуется знать для уровн, джуна. Хороший уровень их знания увеличивает шансы получить оффер (впрочем не сильно).
    Отвечая на конкретные вопросы, изучая с# потеряешь все то что дает jvm, изучая java потеряешь возможность делать нативные приложения из коробки. Если сложно сделать выбор, взгляни в сторону мобильной разработки (читай kotlin). Там энтерпрайз не такой кровавый и все в плане выбора однозначней.
    Ответ написан
    Комментировать