Класс System в Java

Java предоставляет нам полный набор готовых классов и библиотек, что снижает необходимость в служебном кодировании. Одним из таких классов является класс System в Java.

Что такое класс System в Java?

Системный является одним из базовых классов в Java и принадлежит пакету java.lang. Класс System является финальным и не предоставляет общедоступных конструкторов. Из-за этого все члены и методы, содержащиеся в этом классе, являются статическими по природе.

Таким образом, вы не можете наследовать этот класс для переопределения его методов. Поскольку класс System  имеет множество ограничений, существуют различные предварительно созданные поля и методы класса. Ниже я перечислил несколько важных функций, поддерживаемых этим классом:

  • Стандартный ввод и вывод.
  • Ошибка вывода потоков.
  • Доступ к внешним свойствам и переменным среды.
  • Встроенная утилита для копирования части массива.
  • Предоставляет средства для загрузки файлов и библиотек.

Объявление

public final class System extends Object

Поля класса

Класс java.lang.System поставляется с тремя полями:

  1. public static final InputStream in: Это стандартный поток ввода в Java-программировании. Этот поток уже открыт и доступен для ввода входных данных. Этот поток ввода в основном соответствует вводу с клавиатуры или другим источникам ввода, которые указываются хост-средой или пользователем.
  2. public static final PrintStream out: Это стандартный поток вывода в Java-программировании . Этот поток уже открыт и доступен для принятия выходных данных. Этот выходной поток в основном соответствует отображению выходного или другого выходного пункта назначения, который указан хост-средой или пользователем.
  3. 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

Вы можете попробовать реализовать остальные методы, и если вы где-то застряли, вы можете оставить комментарий, и мы поможем вам с этим.

Оцените статью