Ответы пользователя по тегу Java
  • Как можно скомпилировать jar файл?

    @nirvimel
    Ответ написан
    Комментировать
  • Java. Как перехватить аргумент при вызове метода?

    @nirvimel
    Случай у вас довольно тяжелый, но не стоит забывать, что рефлексия способна на чудеса.

    P.S. На python, этот (антипаттерн) называется monkey patching.
    Ответ написан
    6 комментариев
  • Как устроить быстрое чтение рандомных участков в файле в 400 гб?

    @nirvimel
    Автор должен был сразу указать, что речь идет не о физическом сервере, а о гипервизоре azure microsoft.
    Это объясняет многое... Нет, это объясняет все!
    И слово SSD будет лучше убрать, если вы этот "SSD" сами в руках не держали (и никто его в руках не держал, т.к. это просто виртуалка под гипервизором).
    Ответ написан
    8 комментариев
  • Может ли статический метод вызывать не статический?

    @nirvimel
    Нестатические методы - методы экземпляра класса.
    Статические методы - методы самого класса.
    Статический метод, не имея в распоряжении экземпляра класса, не может вызывать нестатический метод непонятно кого.
    Имея экземпляр класса (m1 в примере) можно пользоваться его нестатическими методами откуда угодно.
    Ответ написан
    Комментировать
  • Визуальное программирование для Джавы?

    @nirvimel
    - Папа, а существует визуальное программирование?
    - Нет, сынок, это фантастика.

    Если соответствующей статья русской википедии говорит об обратном, то обратите внимание на навешанные плашки:
    • Эта статья содержит оригинальное исследование.
    • Эта статья или раздел нуждается в переработке.

    Фактически это означает, что предмет статьи есть очередная Великая Тайна Воды.

    А соответствующая статья в английской вики в качестве основной иллюстрации использует ЭТО, что ярко характеризуют возрастную группу целевой аудитории "Визуального Программирования":
    Scratch_2.0_Screen_Hello_World.png
    Ответ написан
    3 комментария
  • Что хранится в поле?

    @nirvimel
    Что хранится в полях "a", один и тот же один объект?

    Да.

    или создаются копии?

    Копии могут создаваться только через сlone() или через сериализацию+десериализацию.

    И правильно ли так далеко передавать через все классы?

    В самой передачи параметра через конструктор и хранении одного объекта в поле другого ничего криминально нет.
    На сколько это оправданно в конкретной ситуации зависит от задачи, которую вы решаете. Может оказаться и так что и вся ваша система классов неуместна для решения некоторой задачи.
    Ответ написан
    Комментировать
  • Спарсить String в массив int - Java, как реализовать?

    @nirvimel
    Сначала строку разбиваем .split(",\s"); в массив строк. Создаем массив int той же длины. Потом в цикле обходим массивы и поэлементно преобразуем строки в числа numbres[i] = Integer.parseInt(strings[i]);

    UPD: На самом деле это НЕ лучшее решение. Я как-то сразу проглядел, что эта строка - валидный объект в формате JSON, и парсится должна соответствующими инструментами. Правильные ответы дали: EugeneP2 и OnYourLips
    Ответ написан
    Комментировать
  • Как лучше организовать автоматическое восстановление приложения после сбоя?

    @nirvimel
    Классический вариант решения:
    1. Таблица, где хранятся котировки, имеет индекс по дате/времени.
    2. Выгрузка идет отдельными транзакциями в цикле. Между транзакция не сохраняется никакого внутреннего состояния. По окончанию каждой транзакции программа (условно) возвращается в исходное состояние (этим обеспечивается восстановление после сбоев).
    3. В самой транзакции сперва делается выборка записи с максимальным значением временной отметки (поиск по индексированному полю - мгновенно).
    4. Это значение округляется в меньшую сторону до начала периода (минуты/часа/дня/года).
    5. Производится запрос котировок за этот период.
    6. Выбранные данные объединяются с содержимым таблицы таким образом, что пересекающиеся записи не дублируются (тут много вариантов решения на sql).
    7. Транзакция закрывается.
    Все.
    Итого: полная гарантия отсутствия дублирующих записей в базе при любом раскладе. Этот скрипт/программу можно запускать вручную/автоматически/по_графику в любое время - ситуация с несколько одновременно работающими копиями не опасна (хоть и бессмысленна).
    Ответ написан
    1 комментарий