Ответы пользователя по тегу Java
  • Как получить с Long хэш покороче?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Переведите в 62-ричную систему счисления 0-9a-zA-Z.
    Максимальная длина будет
    log62(232) = 5.37, то есть 6 разрядов.

    В 36-ричной системе 0-9a-z длина будет 7 разрядов.

    410866054910 = 4u3wix62 = 1vy6urp36
    Ответ написан
    1 комментарий
  • А почему 0.1 + 0.1 + 0.1 - 0.3 будет очень большое число?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Влияет ли количество комментариев на производительность кода?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В чистых интерпретаторах, каждый раз анализирующих строки, влияет. В компиляторах и предкомпилирующих интерпретаторах - не влияет.
    Ответ написан
    Комментировать
  • Как получить правильные данные NMEA с внешнего GPS?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Java не знаю, опишу общий принцип на C.
    char nmea[81];
    char buf[4096];
    int nmeaIdx, bufIdx, bufLen;
        nmeaIdx = 0;
    ...
        while(1) {
            bufLen = read(buf, 4096); // Читаем пакет в буфер, получаем количество считанных байт.
            bufIdx = 0;
            while (bufIdx < bufLen) {
                nmea[nmeaIdx] = buf[bufIdx];
                if (buf[bufIdx] == '\n') {
                    nmea[nmeaIdx] = 0;
                    if (nmea[0] == '$') {
                        // здесь обрабатываем строку nmea
                    }
                    nmeaIdx = 0;
                } else
                    nmeaIdx++;
                bufIdx++;
            }
        }

    Такой цикл можно вынести в отдельный поток и помещать найденные строки в очередь обработки основного потока.
    Ответ написан
    Комментировать
  • Java - тормозит, а Cи - нет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Программы на C/C++ работают быстрее за счёт отказа от контроля всего и вся (расхода памяти, переполнения стека, корректности указателей), за счёт явной и жёсткой типизации переменных, за счёт меньшего количества обёрток вокруг типов данных. Но это позволяет программисту выстрелить себе в ногу таким количеством способов, которые в Java и не снились.
    Ответ написан
    8 комментариев
  • Вывод 3 чисел, которые в сумме дают число n

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не должны повторяться перестановки - значит для каждого множества слагаемых {a, b, c} можно найти множество {a', b', c'}, образованное перестановкой элементов исходного множества, такое, что a'<=b'<=c'. Значит каждый следующий вложенный цикл должен начинаться не с 1, а со значения итератора предыдущего цикла.
    ---
    Подумал ещё:
    При условии a<=b<=c, a+b+c=n значение a не может быть больше n/3, иначе b либо c будут б̶о̶л̶ь̶ш̶е меньше, чем a.
    Значение b не может быть больше, чем (n-a)/2, иначе c будет б̶о̶л̶ь̶ш̶е меньше b.
    Значение c будет равно (n-a-b).
    Итого, получаем
    int n = Integer.parseInt(reader.readLine());
    for (int i = 1; i <= n/3; i++) {
        for (int j = i; j <= (n-i)/2; j++) {
            System.out.println("Числа " + i + " + " + j + " + " + (n-i-j));
        }
    }
    Ответ написан
    2 комментария
  • Как спроектировать небольшую БД и "правильно" сохранять дни недели?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    По первому вопросу - я бы сделал так:
    24b77840dfa64c0d929c1a4f75ae7806.jpg
    Такая связь позволяет прикрепить к одному действию несколько расписаний. Для разовых заданий поле `weekdays` не задаётся. Поле `nextTime` устанавливается при создании расписания и позволяет выбрать все действия, который нужно выполнить, даже если были просрочены. После выполнения действия поле `nextTime` можно выставить в NULL, если `weekdays` пустое, или установить время следующего выполнения задания.
    Ответ написан
    Комментировать
  • Как спроектировать небольшую БД и "правильно" сохранять дни недели?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Храните как
    `weekdays` SET('0', '1', '2', '3', '4', '5', '6')проверяйте через
    FIND_IN_SET(WEEKDAY(NOW()), `weekdays`) > 0
    Ответ написан
  • Как достать динамически формируемое поле джаваскриптом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для чистого JS
    var els = document.getElementsByName('abc');
    var val = els[0].value;

    Для jQuery
    var val = $('input[name="abc"]').val();


    :-( Не въехал сходу в вопрос :-(
    Если вы получаете страницу в своей программе, то надо анализировать, какие скрипты на ней выполняются и какой из них создаёт это поле. Затем смотреть из каких исходных данных и по каким правилам формируется значение поля в скрипте и так же вычислять это значение в своей программе.
    Ответ написан
    Комментировать