Java предоставляет нам полный набор готовых классов и библиотек, что снижает необходимость в служебном кодировании. Одним из таких классов является класс System в Java.
Что такое класс System в Java?
Системный является одним из базовых классов в Java и принадлежит пакету java.lang. Класс System является финальным и не предоставляет общедоступных конструкторов. Из-за этого все члены и методы, содержащиеся в этом классе, являются статическими по природе.
Таким образом, вы не можете наследовать этот класс для переопределения его методов. Поскольку класс System имеет множество ограничений, существуют различные предварительно созданные поля и методы класса. Ниже я перечислил несколько важных функций, поддерживаемых этим классом:
- Стандартный ввод и вывод.
- Ошибка вывода потоков.
- Доступ к внешним свойствам и переменным среды.
- Встроенная утилита для копирования части массива.
- Предоставляет средства для загрузки файлов и библиотек.
Объявление
public final class System extends Object
Поля класса
Класс java.lang.System поставляется с тремя полями:
- public static final InputStream in: Это стандартный поток ввода в Java-программировании. Этот поток уже открыт и доступен для ввода входных данных. Этот поток ввода в основном соответствует вводу с клавиатуры или другим источникам ввода, которые указываются хост-средой или пользователем.
- public static final PrintStream out: Это стандартный поток вывода в Java-программировании . Этот поток уже открыт и доступен для принятия выходных данных. Этот выходной поток в основном соответствует отображению выходного или другого выходного пункта назначения, который указан хост-средой или пользователем.
- public static final PrintStream err: Это стандартный поток вывода ошибок в Java-программировании. Этот поток уже открыт и доступен для принятия выходных данных. Этот выходной поток в основном соответствует отображению выходного или другого выходного пункта назначения, который указан хост-средой или пользователем. Технически этот выходной поток используется для отображения сообщений об ошибках или другой информации, которая требует немедленного внимания пользователя.
Методы системного класса
Всего в классе java.lang.System объявлено 28 встроенных методов.
| Метод | Описание |
|---|---|
| static void arraycopy (Object src, int srcPos, Object dest, int destPos, int length) | Помогает копировать массив из указанного исходного массива, начиная с указанной позиции до указанной позиции целевого массива. |
| static String clearProperty (ключ String) | Помогает удалить системное свойство, указанное указанным ключом. |
| Консоль static static () | Помогает вернуть любой доступный уникальный объект консоли, связанный с текущей JVM. |
| статическое длинное currentTimeMillis() | Помогает вернуть текущее время в миллисекундах |
| выход из статической пустоты (статус int) | Помогает завершить текущую JVM |
| статическая пустота gc() | Этот метод помогает в запуске сборщика мусора |
| статическая карта <String, String> getenv() | Помогает в возврате неизменяемой строковой карты текущей системы |
| static String getenv (имя строки) | Помогает в получении значения указанной переменной среды |
| статические свойства getProperties () | Помогает в определении текущих свойств системы |
| статическая строка getProperty (строковый ключ) | Помогает получить системное свойство, указанное указанным ключом. |
| статическая строка getProperty (ключ строки, строка определения) | Помогает получить системное свойство, указанное указанным ключом. |
| статический SecurityManager getSecurityManager () | Помогает получить интерфейс безопасности системы |
| static int identityHashCode (Object x) | Помогает возвращать тот же хэш-код для данного объекта, значение которого будет похоже на метод по умолчанию hashCode (), независимо от переопределения класса данного объекта hashCode () |
| статический Канал унаследованный канал () | Помогает в возврате канала, который унаследован от объекта, создавшего JVM. |
| статическая строка lineSeparator () | Помогает в возврате системно-зависимой строки разделителя строк. |
| статическая пустая нагрузка (строковое имя файла) | Помогает в загрузке файла кода с указанным именем файла из локальной файловой системы в виде динамической библиотеки. |
| static void loadLibrary (строковое имя_библиотеки) | Помогает в загрузке системной библиотеки, указанной аргументом libname |
| статическая строка mapLibraryName (строковое имя_библиотеки) | Помогает в отображении имени библиотеки в специфическую для платформы строку, представляющую собственную библиотеку |
| статический длинный nanoTime () | Помогает возвращать текущее значение работающего источника времени высокого разрешения JVM в течение наносекунд |
| static void runFinalization () | Помогает в выполнении методов завершения любых объектов, ожидающих завершения |
| static void setErr (PrintStream err) | Помогает переназначить «стандартный» поток вывода ошибок |
| статическая пустота setIn (InputStream in) | Помогает переназначить «стандартный» поток ввода |
| static void setOut (PrintStream out) | Помогает переназначить «стандартный» поток вывода |
| static void setProperties (Свойства реквизита) | Помогает в настройке системных свойств для аргумента Свойства |
| статическая строка setProperty (строковый ключ, строковое значение) | Помогает в настройке системного свойства, указанного указанным ключом |
| static void setSecurityManager (SecurityManager s) | Помогает в настройке безопасности системы |
| static void runFi nalizersOnExit (логическое значение) | Устаревшее |
Реализация
В следующем примере я реализовал несколько из рассмотренных выше методов.
package edureka;
import java.io.Console;
import java.lang.*;
import java.util.*;
public class SystemClassMethods {
public static void main(String[] args) {
String a[]= {"D","P","R","E","K","A"}; //source array
String b[]= {"E","D","U","V","O","I","D","L","E","A","R","N","I","N","G"}; //destination array
String src[],dest[];
int srcPos,destPos,length;
src=a;
srcPos=2;
dest=b;
destPos=3;
length=4;
System.out.print("Source array:");
for(int i=0;i<src.length;i++) {System.out.print(a[i]);}
System.out.println();
System.out.print("Destination array:");
for(int i=0;i<dest.length;i++) {System.out.print(b[i]);}
System.out.println();
System.out.println("Source Position:"+srcPos);
System.out.println("Destination Position:"+destPos);
System.out.println("Length:"+length);
System.arraycopy(src, srcPos, dest, destPos, length); //use of arraycopy() method
System.out.println("After Copying Destination Array: ");
for(int i=0;i<b.length;i++)
{
System.out.print(b[i]);
}
System.out.println();
System.out.println("---------Implementing NanoTime Method----------");
System.out.println("Current time in nanoseconds = "+System.nanoTime());
System.out.println();
System.out.println("---------Implementing getProperties() Method----------");
System.out.println("Your System property for user");
Properties p = System.getProperties();
System.out.println(p.getProperty("user.name")); //property to get User's account name
System.out.println(p.getProperty("user.home")); //property to get User's home directory
System.out.println(p.getProperty("user.dir")); //property to get User's current working directory
System.out.println();
System.out.println("---------Implementing console() Method----------");
Console console = System.console();
if(console != null){
Calendar c = new GregorianCalendar();
console.printf("Welcome %1$s%n", "Edureka");
console.printf("Current time is: %1$tm %1$te,%1$tY%n", c);
console.flush();
} else{
//No console is attached when executed in Eclipse
System.out.println("No Console attached");
}
System.out.println();
System.out.println("---------Implementing getSecurityManager() Method----------");
SecurityManager secManager = System.getSecurityManager();
if(secManager == null){
System.out.println("SecurityManager is not configured");
}
SecurityManager mySecManager = new SecurityManager();
System.setSecurityManager(mySecManager);
secManager = System.getSecurityManager();
if(secManager != null){
System.out.println("SecurityManager is now configured");
}
}
}
Вывод
Source array:DPREKA Destination array:EDUVOIDLEARNING Source Position:2 Destination Position:3 Length:4 After Copying Destination Array: EDUREKALEARNING ---------Implementing NanoTime Method---------- Current time in nanoseconds = 433367948321300 ---------Implementing getProperties() Method---------- Your System property for user Swatee_Chand C:UsersSwatee_Chand C:UsersSwatee_Chandeclipse-workspaceSystemClass ---------Implementing console() Method---------- No Console attached ---------Implementing getSecurityManager() Method---------- SecurityManager is not configured SecurityManager is now configured
Вы можете попробовать реализовать остальные методы, и если вы где-то застряли, вы можете оставить комментарий, и мы поможем вам с этим.
