Методы работы с датами и показаниями времени собраны в два класса: Calendar и Date из пакетаjava.utii.
Объект класса Date хранит число миллисекунд, прошедших с 1 января 1970 г. 00:00:00 по Гринвичу. Это "день рождения" UNIX, он называется "Epoch".
Получить текущее число миллисекунд, прошедших с момента Epoch на той машине, где выполняется программа, можно статическим методом
System.currentTimeMillis()
В классе Date два конструктора. Конструктор Date () заносит в создаваемый объект текущее время машины, на которой выполняется программа, по системным часам, а конструктор Date (long miiiisec)— указанное число.
Получить значение, хранящееся в объекте, можно методом long getTime (),
установить новое значение — методом setTimedong newTime).
Три логических метода сравнивают отсчеты времени:
boolean after (long when) — возвращает true, если время when больше данного;
boolean before (long when) — возвращает true, если время when меньше данного;
boolean after (Object when) — возвращает true, если when — объект класca Date и времена совпадают.
Еще два метода, сравнивая отсчеты времени, возвращают отрицательное число типа int, если данное время меньше аргумента when; нуль, если времена совпадают; положительное число, если данное время больше аргумента when:
int compareTo(Date when);
int compareTotobject when) — если when не относится к объектам класса Date, создается исключительная ситуация.
Преобразование миллисекунд, хранящихся в объектах класса Date, в текущее время и дату производится методами класса calendar.
DateFormat. LONG, DateFormat. LONG) . format (new Date ()•));
Получение случайных чисел
Получить случайное неотрицательное число, строго меньшее единицы, в виде типа double можно статическим методом random () ИЗ класса java.lang.Math.
Более серьезные действия со случайными числами можно организовать с помощью методов классаRandom из пакета java.utii. В классе два конструктора:
Random (long seed) — создает генератор псевдослучайных чисел, использующий для начала работы число seed; Random() —выбирает в качестве начального значения текущее время. ;
Создав генератор, можно получать случайные числа соответствующего типа методами nextBoolean(), nextDouble(), nextFloat()(, nextGau.ssian(), next into, nextLong(), nextint(int max) или записать сразу последовательность случайных чисел в заранее определенный массив байтов bytesметодом nextBytes(byte[] bytes).
Вещественные случайные числа равномерно располагаются в диапазоне от 0,0 включительно до 1,0 исключительно. Копирование массивов
В классе System из пакета java.iang есть статический метод копирования массивов, который использует сама исполняющая система Java. Этот метод действует быстро и надежно, его удобно применять в программах. Синтаксис:
static void arraycopy(Object src, int src_ind, Object dest, int dest_ind, int count)
Из массива, на который указывает ссылка src, копируется count элементов, начиная с элемента с индексом src_ind, в массив, на который указывает ссылка dest, начиная с его элемента с индексомdest_ind.
Все индексы должны быть заданы так, чтобы элементы лежали в массивах, типы массивов должны быть совместимы, а примитивные типы обязаны полностью совпадать. Ссылки на массивы не должны быть равны null.
Ссылки src и dest могут совпадать, при этом для копирования создается промежуточный буфер. Метод можно использовать, например, для сдвига элементов в массиве. После выполнения
Класс System позволяет осуществить и некоторое взаимодействие с системой во время выполнения программы (run time). Но кроме него для этого есть специальный класс Runtime.
Класс Runtime содержит некоторые методы взаимодействия с JVM во время выполнения программы. Каждое приложение может получить только один экземпляр данного класса статическим методомgetRuntime (}. Все вызовы этого метода возвращают ссылку на один и тот же объект.
Метод hait(int status) осуществляет немедленный останов JVM. Он не завершает запущенные процессы нормально и должен использоваться только в аварийных ситуациях.