Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПI_ЛР2011_ч3.doc
Скачиваний:
5
Добавлен:
08.11.2019
Размер:
1.42 Mб
Скачать

8.2.4Одержання випадкових чисел

Одержати випадкове невід`ємне число, строго менше одиниці, у вигляді типу double можна статичним методом random() із класу java.lang.Math.

При першому звертанні до цього методу створюється генератор псевдовипадкових чисел, що використовується потім при одержанні наступних випадкових чисел.

Більш серйозні дії з випадковими числами можна організувати за допомогою методів класу Random з пакета java.util. У класі два конструктори:

Random (long seed) – створює генератор псевдовипадкових чисел, який використовує для початку роботи число seed; Random() -вибирає за початкове значення поточний час.

Створивши генератор, можна одержувати випадкові числа відповідного типу методами nextBoolean(), nextDouble(), nextFloat()(, nextGaussian(), nextInt(), nextLong(), nextInt(int max) або записати відразу послідовність випадкових чисел у заздалегідь певний масив байтів bytes методом nextBytes(byte[] bytes).

Дійсні випадкові числа рівномірно розташовуються в діапазоні від 0,0 включно до 1,0 виключно. Цілі випадкові числа рівномірно розподіляються по всьому діапазоні відповідного типу за, одним виключенням: якщо в аргументі зазначене ціле число max, діапазон випадкових чисел буде від нуля включно до max виключно.

8.2.5Взаємодія із системою

Клас System дозволяє здійснити взаємодію із системою під час виконання програми(run time). Але крім нього для цього є спеціальний клас Runtime.

Клас Runtime містить деякі методи взаємодії з JVM під час виконання програми. Кожна програма може одержати тільки один екземпляр даного класу статичним методом getRuntime(). Всі виклики цього методу повертають посилання на той самий об'єкт.

Методи freeMеmory() і totalMemory() повертають кількість вільної й всієї пам'яті, що є в розпорядженні JVM для розміщення об'єктів, у байтах, типу long. He варто твердо опиратися на ці числа, оскільки кількість пам'яті змінюється динамічно.

Метод exit(int status) запускає процес зупинки JVM і передає операційній системі статус завершення status. За згодою, ненульовий статус означає ненормальне завершення. Зручніше використовувати аналогічний статичний метод класу system.

Метод halt(int status) здійснює негайний зупинку JVM. Він не завершує запущені процеси нормально й повинен використовуватися тільки в аварійних ситуаціях.

Метод loadLibrary(string libName) дозволяє довантажити динамічну бібліотеку під час виконання по її імені libName.

Метод load(string fileName) довантажує динамічну бібліотеку по імені файлу fileName.

Втім, замість цих методів зручніше використовувати статичні методи класу system з тими ж іменами й аргументами.

Метод gc() запускає процес звільнення непотрібної оперативної пам'яті(garbage collection). Цей процес періодично запускається самою віртуальною машиною Java і виконується з невеликим пріоритетом, але можна його запустити й із програми. Знов-таки зручніше використовувати статичний Метод System.gc().

Кілька методів ехес() запускають в окремих процесах виконавчі файли. Аргументом цих методів служить командний рядок виконавчого файлу.

Наприклад, Runtime.getRuntime().exec("notepad") запускає Програму блокнот на платформі MS Windows.

Методи exec() повертають екземпляр класу process, що дозволяє керувати запущеним процесом. Методом destroy() можна зупинити процес, методом exitValue() одержати його код завершення. метод waitFor() припиняє основний підпроцес доти, поки не закінчиться запущений процес. Три методи getInputStream(), getOutputStream() И getErrorStream() повертають вхідний, вихідний потік і потік помилок запущеного процесу.