Ответы пользователя по тегу Java
  • Как быстро парсить текст на JAVA?

    TheKnight
    @TheKnight
    Программист
    Задача плохо формализована.
    Вопросы:
    1) Какие требования по производительности? Размер строк, количество строк в секунду, etc. Если требования не очень высоки - возможно вас устроит и обычные регулярные выражения.
    2) Насколько часто меняются требования к проверке? Если редко - есть смысл написать некоторое количество классов, каждый из которых будет специфицирован под конкретную задачу.
    3) Если требования меняются часто, но при этом только добавляются, оставляя предыдущие требования необходимыми для исполнения - чем не устраивает решение с генерацией кода проверки на лету?

    Рекомендую почитать про алгоритмы работы со строками.
    Ответ написан
    Комментировать
  • Как добавляются элемент в HashMap?

    TheKnight
    @TheKnight
    Программист
    https://examples.javacodegeeks.com/core-java/util/...
    Может быть эта статья вам поможет?
    Ответ написан
    Комментировать
  • Как реализовать мои маленькие мысли?

    TheKnight
    @TheKnight
    Программист
    InetAddress address = InetAddress.getByName("www.example.com"); 
    System.out.println(address.getHostAddress());

    stackoverflow.com/a/15788605

    Это что касается получения IP по имени.
    Что же касается кода - какой нафиг флоат? Зачем дабл? Какого черта используется неявное приведение Float к Double? Что происходит вообще?
    Ответ написан
    4 комментария
  • Какую систему сборки использовать?

    TheKnight
    @TheKnight
    Программист
    Рекомендую Gradle. Преимущества:
    1) Менеджмент зависимостей.
    2) Возможность писать плагины на разных языках достаточно простым образом.
    3) Уже существующая неплохая инфраструктура плагинов.
    4) Если сильно надо - можно спокойно хачить билдскрипт так, как удобнее. Мавен это не позволяет. При этом основная часть сборки остается декларативной.
    Ответ написан
    Комментировать
  • Почему для static-метода нельзя опустить имя класса?

    TheKnight
    @TheKnight
    Программист
    Рекомендую прочитать про static import. Думается мне, это вам поможет для конкретно вашей задачи.

    Если по существу - для имплементации вашей хотелки необходимо при компиляции обойти все классы в classpath и проверить наличие там данной функции и только после этого записать в байт-код вызов конкретной функции.
    Кроме того, непонятно, как работать с коллизиями.
    Ответ написан
  • Протестировать Java приложение с входящими параметрами?

    TheKnight
    @TheKnight
    Программист
    Параметры как то между собой связаны? Возможно ли при помощи четырех вложенных циклов перебрать все возможные значения? Если да, то банальный sh(bat, powershell) скрипт который будет запускать приложение с разными параметрами.

    Есть подозрение, что вы что то делаете или объясняете не так и вам на самом деле нужны модульные тесты(они же юнит тесты). Для такой задачи хорошо подходит JUnit.
    Ответ написан
    1 комментарий
  • Как улучшить архитектуру приложения?

    TheKnight
    @TheKnight
    Программист
    1) А что мешает сразу на месте залоггировать ошибку без выброса эксепшена? Так ли он нужен там?
    3) Не логгируй из конструктора исключения. Не все смогут догадаться найти вызов логгера там.
    2) Для сообщений есть хорошая такая штука - Resource Bundle. Позволяют заодно и интернациализацию сделать не так сложно как могло бы быть.

    Чем не устраивает стандартный try/catch?
    Если уж сильно хочется все повыносить - сделай банальный ExceptionHandler и скидывайв него пойманные и созданные исключения.
    Ответ написан
    1 комментарий
  • Стоит ли смотреть чужой код, разбирать и затем воспроизводить его самому на память для учебы?

    TheKnight
    @TheKnight
    Программист
    Сделай по другому. Напиши некий набор тестов, которые проверяют выполнение задачи, решенный тем кодом, который ты хочешь "заучить". Потом напиши кондовое, костыльное, но свое решение этой задачи проходящее набор написанных на предыдущем этапе тестов. Сравни эти два решения. Попробуй понять, почему автор сделал так а не иначе. Чем твое решение хуже или лучше. Сделай выводы разнице и сходстве.
    В чем плюс - ты учишься придумывать свое решение для задачи. К сожалению не все и не всегда придумано за нас и гугл не всегда всемогущ. В чем минусы - ты можешь писать отвратительные тесты по своей лени и можешь писать не менее отвратительный код, расчитанный только на прохождение этих тестов. К примеру захордкодить входные данные и ответы на них. Правда как по мне во многих простых задачах проще написать нормальное решение чем хардкодить данные.
    Если речь идето стиле кода - тогда надо не переписывать код по памяти, а просто учавствовать в жизни соответствующего проекта. Тебе по пальцам настучат за кривую стилистику, не переживай.
    Ответ написан
    Комментировать
  • Структура, архитектура JVM(внутреннее устройство), от .java до .jar?

    TheKnight
    @TheKnight
    Программист
    Не факт, что я прав, но возможно вам поможет информация из книг The Java language Specification и The Java Virtual Machine Specification. Они доступны на сайте оракла. Ссылка тыц

    Кроме того рекомендую посмотреть доклады с JavaPoint и других русскоязычных конференций. К примеру интересный для вас доклады могут быть у Романа Елизарова, Алексея Шипилева.
    Ответ написан