• Как правильно хранить данные программы?

    compilator
    @compilator
    Senior Data Engineer
    Если количество данных у Вас ограничивается всего-лишь одной записью: "время, подсказка, статус", то проще всего запилить конфиг файл и хранить там. Если будильник не один, плюс хочется еще какие-то данные помимо этих хранить, то тут уже целесообразно подключить СУБД. Embeded вариант, той же H2 в этом плане очень удобна. Впрочем Вам ее уже посоветовали :)
    Ответ написан
    Комментировать
  • Как правильно хранить данные программы?

    @nirvimel
    СУБД, например H2 (если речь java), или любая, которая нравится.
    Ответ написан
    Комментировать
  • Как научить девочку программировать?

    @AlexLIn
    Также как и мальчика. Показать что это интересно и увлекательно.
    У нас в школах детей вот так учат https://scratch.mit.edu/

    printf для детей очень скучно, потомучто не понимают "зачем"

    А вот например рыбка или котик который реагирует на чтото. Очень даже интересно
    Вот пример на немецком (другого не нашел). Но на русском тоже есть
    7fd1a495d8214e45be2e8b54de51e446.png

    PS.
    забыл добавить.
    Специально ждя детей есть lego mindstorm.
    У них есть визуальная среда программирования, которая обучает логике
    a30552722c8a422c9a46e999641c03ee.jpg
    Ответ написан
    4 комментария
  • Как проверить, зациклен ли односвязный список?

    @Sk1talec
    Фанат Java, Android и компьютерного зрения :)
    Алгоритм следующий:
    1) Каждый элемент списка помещаем в нашу обертку, одним из полей которой будет являться ThreadLocal переменная - флаг. Изначально флаг выключен.
    2) Когда мы посещаем элемент, поднимаем флаг.
    3) Если нашли поднятый флаг - список зациклен. Если уперлись в next==null - нет.

    Если такое действие над списком нужно производить не 1 раз, тогда у поднятого флага должно быть 2 значения, которые мы чередуем при каждом запуске.
    Ответ написан
    2 комментария
  • Как проверить, зациклен ли односвязный список?

    @gurinderu
    java developer
    Нельзя проверить зацикленность многопоточно поскольку это в любом случае не атомарная операция.
    Придется делать доступ до метода синхронизированным. И дальше можно:
    1. Сделать фиктивный флаг для каждого node что мы тут уже были
    2. Пустить два итератора. Первый по правилу i=i+1, второй по правилу i=i+2. И если второй догонит первый, то у вас есть цикл.
    3. Вариант с удалением ссылок на next.
    Ответ написан
  • Что такое InterruptedException?

    @z777
    Достаточно просто: Interrupted - переводится как прерванный.
    Представим такую ситуацию: есть три потока 1 - главный, не зависит ни от кого, и два других зависящие друг от друга. Допустим второму потоку требуются данные которые получаются в результате выполнения третьего потока. Соответственно мы "усыпляем второй поток" и ждем пока третий выполниться, но при выполнении третьего потока получается ситуация что нужно приостановить или прервать выполнение второго и третьего потока, соответственно мы останавливаем третий поток, а у второго вызываем метод interrupt() (прервать). Когда планировщик потоков попытается возобновить второй поток, он не сможет этого сделать, т.к. второй поток прерван, вот тогда и получается это исключение. Пример не очень удачный, прошу не судить строго.
    Ответ написан
    8 комментариев