Skip to content

Latest commit

 

History

History
202 lines (157 loc) · 14.2 KB

File metadata and controls

202 lines (157 loc) · 14.2 KB

Методы java.lang.System

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

Метод копирования массивов src - источник данных dest - результат куда нужно сложить данные srcPos - начальная позиция в массиве-источнике destPos - начальная позиция в массиве-приемнике length - количество элементов для копирования

Console console()

Возвращает уникальный объект Console ассоциированный с этой виртуальной машиной, если есть Может вернуть null (возвращает null в unit-тестах)

long currentTimeMillis()

Возвращает текущее время в миллисекундах по часам операционной системы Если операционная система оперирует не миллисекундами, а единицами времени большей размерности - ну что поделать

long nanoTime()

Возвращает время работы данной виртуальной машины джава в наносекундах Метод должен использоваться для вычисления промежутков времени (истекающих) Если время работы больше чем 292 года, то корректность работы не гарантируется Значение данного метода осмысленно только для конкретной джава машины Некорректно сравнивать его со значениями полученными в других джава машинах

Пример использования:

long startTime = System.nanoTime();  // ... the code being measured ...
long elapsedNanos = System.nanoTime() - startTime;
void exit(int status)

Завершает текущую запущенную виртуальную машину status - статус завершения

void gc()

Запускает сборку мусора Вызов метода говорит джава машине, что сборку мусора нужно провести быстрее, чем она реально запланирована После выхода из метода ВМ сделает попытку переназначить место из-под всех неиспользуемых объектов Но никаких гарантий нет: не гарантируется удаление объектов, не гарантируется что будет освобождено место или выполнение за конкретное время (после того как метод завершится)

Map<String,String> getenv()

Возвращает немодифицируемую мапа с текущими значениями среды (environment) Это системно зависимые пары ключ-значение передающиеся от родительского процесса дочернему Если системного environment нет, то мапа будет пустой

String getenv(String name)

Возвращает специальное значение environment по имени

Logger getLogger(String name)

Возвращает логгер В джаве была добавлена своя система логгирования, которая в принципе работает с популярными библиотеками

Logger getLogger(String name, ResourceBundle bundle)

Локализованный логгер, логгер должен использовать bundle для локализованных сообщений ResourceBundle - класс для хранения локализованных сообщений

Properties getProperties()

Возвращает системные настройки, может кинуть security exception Для изменения системных настроек, не стоит менять сам Properties, лучше использовать методы: getProperties(), setProperties(Properties), setProperty(String, String) или clearProperty(String) Изменение стандартных проперти после инициализации может не иметь эффекта

Список основных проперти:

Имя Описание
java.version Версия джава машины, см так же Runtime.Version
java.version.date Дата jre, в формате ISO-8601 YYYY-MM-DD
java.vendor Поставщик jre
java.vendor.url URL поставщика
java.vendor.version Версия поставщика (опционально)
java.home Папка куда джава установлена
java.vm.specification.version Версия спецификации jvm
java.vm.specification.vendor Поставщик спецификации jvm
java.vm.specification.name Наименование спецификации jvm
java.vm.version Реализация jvm, см так же Runtime.Version
java.vm.vendor Поставщик реализации jvm
java.vm.name Поставщик реализации jvm
java.specification.version Версия спецификации jre
java.specification.vendor Поставщик спецификации jre
java.specification.name Наименование спецификаии jre
java.class.version Java class format version number
java.class.path класспасс, см ClassLoader.getSystemClassLoader()
java.library.path список путей где искать библиотеки для загрузки
java.io.tmpdir папка временных файлов по умолчанию
java.compiler Имя jit компилятора (используемого)
os.name наименование операционной системы
os.arch Архитектура операционной системы
os.version Версия операционой системы
file.separator Разделителья для файлов ("/" on UNIX)
path.separator Разделитель path (":" on UNIX)
line.separator Разделитель строк ("\n" on UNIX)
user.name Имя аккаунта пользователя
user.home Домашняя папка пользователя
user.dir Текущая рабочая директория
native.encoding Кодировка полученная из настрок системы и/иил настроек пользователя

Кроме стандартных могут еще присутствовать вот такие доп значения:

Имя Описание
jdk.module.path Путь к модулу приложения
jdk.module.upgrade.path Путь модуля обновления
jdk.module.main Наименование основного/инициализующего модуля
jdk.module.main.class Имя главного класс инициализурующего модуля
String getProperty(String key)

Возвращает значение проперти по имени или null Может кинуть SecurityException

String getProperty(String key, String def)

Возвращает значение проперти по имени или def Может кинуть SecurityException

void setProperties(Properties props)

Переписывает стандартные проперти, теми что заданы в аргументе функции Может кинуть SecurityException Переписывание стандартных значений может привести к непредсказуемым результатам

String setProperty(String key, String value)

Переписывает значение проперти по ключу, возвращает предыдущее значение Может кинуть SecurityException Переписывание стандартных значений может привести к непредсказуемым результатам

String clearProperty(String key)

Удаляет проперти по ключу, возвращает предыдущее значение Может кинуть SecurityException Переписывание стандартных значений может привести к непредсказуемым результатам

SecurityManager getSecurityManager()

Получить общесистемный менеджер безопасности Метод Deprecated с 17 версии джавы

void setSecurityManager(SecurityManager sm)

Установить общесистемный менеджер безопасности Метод Deprecated с 17 версии джавы

int identityHashCode(Object x)

Возвращает значение функции hashCode(), если бы она не была переопределена в объекте Будет вызван дефолтный метод hashCode()

Channel inheritedChannel()

Возвращает канал Channel, унаследованный от сущности созданной текущей виртуальной машиной JVM Может вернуть null

String lineSeparator()

Возвращает разделитель строк. Соответствует значению пропети line.separator. Для UNIX систем: "\n"; для систем семейства Microsoft Windows: "\r\n".

void load(String filename)

Загружает нативную библиотеку, передавать в параметр нужно абсолютный путь до файла. Для большего понимания как это работает, нужно почитать JNI спецификацию

void loadLibrary(String libname)

Загружает нативную библиотеку, в параметре нужно передать libname аргумент. Для большего понимания как это работает, нужно почитать JNI спецификацию

String mapLibraryName(String libname)

Мапит библиотеку в платформо-зависимую строку представляющую эту библиотеку

void runFinalization()

Вызов этого метода говорит JVM что нужно вызвать методы финализации (которые еще не были вызваны) JVM попробует сделать попытку запустить эти методы (но может и не запустить)

void setErr(PrintStream err)

Переопределение стандартного потока System.err

void setIn(InputStream in)

Переопределение стандартного потока System.in

void setOut(PrintStream out)

Переопределение стандартного потока System.out


System.err

Стандартный поток вывода ошибок, поток сразу открыт и готов для записи.
Следует использовать для вывода ошибок

System.in

Стандартный поток ввода, поток сразу открыт и готов для записи.
Чаще всего используется для ввода данных с клавиатуры или других источников ввода, в зависимости от среды хоста

System.out

Стандартный поток вывода, поток сразу открыт и готов для записи.
Чаще всего используется для отображения и вывода данных на дисплей или другой метод вывода в зависимости от среды хоста


System.Logger

Интерфейс логгера для logging framework