Javatpoint Logo
Javatpoint Logo

System Class in Java

The Java programming language is renowned for its comprehensive standard library, which includes a multitude of classes and utilities that aid in the development of robust and efficient applications. Among these classes, the System class holds a special place. It provides access to a wide range of system-related functionalities, enabling developers to interact with the environment, manage I/O operations, and obtain information about the runtime environment.

Java, known for its robust standard library, includes the versatile System class that offers developers an array of system-related functionalities. The class resides within the java.lang package and provides an interface to interact with the underlying operating system and runtime environment. In this section, we will dive deeper into the functionalities and applications of the System class.

Java System Class

The System class is part of the java.lang package, which is implicitly imported into every Java program. As a result, you can access the System class directly without needing to explicitly import it. The class is final, meaning that it cannot be extended, ensuring that its core functionalities remain consistent across different Java applications.

The System class stands as a testament to Java's commitment to cross-platform compatibility. Since it's part of the core Java library, developers can access its features without explicit imports, making it readily available for various programming tasks.

Standard Streams: System.out, System.err, and

Java applications often require communication with the user and the console. The System class offers instances of PrintStream and InputStream to facilitate these interactions.

Methods of the System Class

The System class boasts a variety of static methods, allowing you to perform operations ranging from managing input and output to interacting with the runtime environment. Here are some of the most prominent methods:

S. N. Modifier and Type Method Description
1. static void arraycopy(Object src, int srcPos,
Object dest, int destPos, int length)
Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array.
2. static String clearProperty(String key) Removes the system property indicated by the specified key.
3. static Console console() Returns the unique Console object associated with the current Java virtual machine, if any.
4. static long currentTimeMillis() Returns the current time in milliseconds.
5. static void exit(int status) Terminates the currently running Java Virtual Machine.
6. static void gc() Runs the garbage collector.
7. static Map<String,String> getenv() Returns an unmodifiable string map view of the current system environment.
8. static String getenv(String name) Gets the value of the specified environment variable.
9. static System.Logger getLogger(String name) Returns an instance of Logger for the caller's use.
10. static System.Logger getLogger(String name, | ResourceBundle bundle) Returns a localizable instance of Logger for the caller's use.
11. static Properties getProperties() Determines the current system properties.
12. static String getProperty(String key) Gets the system property indicated by the specified key.
13. static SecurityManager getSecurityManager() Gets the system security interface.
14. static Channel inheritedChannel() Returns the channel inherited from the entity that created this Java virtual machine.
15. static int identityHashCode(Object x) Returns the same hash code for the given object as would be returned by the default method hashCode(), whether or not the given object's class overrides hashCode().
16. public static final PrintStream out out and err PrintStream instance for standard output. Commonly used for printing text to the console.
17. public static final InputStream in InputStream instance that facilitates reading input from the console. Used in conjunction with classes like Scanner for acquiring user input during program execution.
19. public static String getProperty(String key) Retrieves system properties based on the provided key.

Common Use Cases

The System class finds application in various scenarios, some of which include:

  1. Input and Output Management: The class simplifies reading user input, displaying output, and managing error messages through standard streams.
  2. Performance Evaluation: The System.currentTimeMillis() method aids in benchmarking and profiling, enabling developers to identify bottlenecks and optimize code.
  3. Memory Manipulation: The System.arraycopy() method contributes to efficient memory management, which is crucial when dealing with large arrays or optimizing resource usage.
  4. Configuration and Adaptation: Environment variables and system properties accessed through the System class enable code to adapt dynamically to different runtime environments.
  5. Program Termination: The System.exit() method ensures clean program termination while conveying exit status information to external processes.


The System class in Java encapsulates a wealth of system-related functionalities. Its capabilities, spanning input/output management, time measurement, memory manipulation, and system interaction, empower developers to craft versatile applications tailored to a wide range of requirements. Whether you're working on a personal project or an enterprise-level solution, harnessing the power of the System class elevates your programming prowess and positions you to create software that seamlessly interacts with the underlying system.

Youtube For Videos Join Our Youtube Channel: Join Now


Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Trending Technologies

B.Tech / MCA