Ответы пользователя по тегу Java
  • Как сгенерировать 14-ти значное положительное число?

    @Joysi75
    Если нужны длинные (допустим 100-значные), то можно затратно так (пример для 14 значного):
    BigInteger b;
    do{
           b = new BigInteger(48, new SecureRandom());
    } while (b.toString().length()!=14);
    System.out.println(b.toString());
    Ответ написан
    4 комментария
  • В какой книге по java больше практических задач и примеров?

    @Joysi75
    Мне кажется для новичка в плане практических задач лучше проявит "комбо" книга (теория) + онлайн-курс(выдержки из теории + практика):
    hexlet/javarush (рус) pluralsight (engl) ... много их платных и бесплатных. Уделите пару часов на ознакомление.

    P.S. Чисто разбор листингов по книгам без "щупания руками" - эффективность будет ниже. Ну или можно себе несложные задачи придумывать и решать (но для совсем новичка тяжело будет, но преодолимо, особенно если рядом есть кому помочь).
    Ответ написан
    Комментировать
  • Многопоточность и MySQL?

    @Joysi75
    А в чем проблема?
    Базу данных проблемы использующих ее приложений не волнуют. Она в порядке очереди будет обрабатывать поступающие запросы и выполнять их. При выполнении операций модификаций будет блокировать таблицу на изменение. Если будут параллельные запросы к данному ресурсу - положит их в очередь до завершение блокирующих операций, если параллельный запрос к незаблокированному ресурсу - запустит его выполнение не дожидаясь результатов предыдущих.

    У вас таблица с identity. И одновременно поступило пятьсот insert-ов. Все они встанут в очередь. И будут отработаны (будут выполнены или нет из-за некорректности данных). Единственное но, если одно приложение послало подряд не в транзакции два insert-а, никто не гарантирует что у них idenitity поля после вставки будут отличаться на единицу.

    И не стоит реализовывать в клиентской программе логику, например:
    вы вставили значение в таблицу c identity ключом, получили его на клиенте и по привычке однопользовательской БД решили получить количество записей в таблице как значение idenity поля (при условии что данные из нее вы не удаляете) для дальнейших действий. Вот тут может не прокатить, так как между последней ВАШЕЙ операцией Insert может кто-то еще вставить данные и вы не учтете их в логике приложения.

    P.S.
    Также помните, если вам надо выполнить в базе данных подряд несколько логически связанных операций , то оформите их как транзакцию - логический неделимый блок операций. При этом операции будут выполнены подряд последовательно, результат будет:
    -отражен в БД данных при условии , что все операции выполнены корректно
    -полностью отменен и БД восстановит состояние, в котором она была до выполнения первой операции в транзакции при условии, что какое либо действие в транзакции не исполнилось.
    Ответ написан
    1 комментарий
  • Нужен таймер который будет работать при закрытой программе?

    @Joysi75
    Если комп отключен, то такой таймер по записи в файл не сработает. Наверное, проще арендовать самый дешевый вирт хостинг и запустить скрипт, который в нужное время оповестить (пошлет на порт "весточку", емыл или еще как).
    Хотя можем мы и не так понимаем, вопрос весьма размыт.
    P.S. Раньше (наверное и сейчас - не интересовался) были платы расширения для материнской платы в некоторые сервера с Ethernet+RS232 набортным контроллером, которые включали их либо по таймеру, либо по спец UDP пакету, посланному на порт.
    Ответ написан
    Комментировать