1.System class and runtime class 1.1System class
The system class is not unfamiliar to us, and in the previously learned knowledge, when we need to print the results, we use the "System.out.println ()" Statement to print out the code, which uses the system class. This class defines system-related properties and methods that provide properties and methods that are static, so that you can refer to these properties and methods directly using the system class call. The following table is some of the methods commonly used by the system class.
Method declaration |
Function description |
static void exit (int status) |
The method is used to terminate the currently running Java Virtual machine, where the parameter status indicates the state, and if the status code is not 0, it indicates an abnormal termination |
static void GC () |
Run the garbage collector and recycle the garbage |
Static native long Currenttimemillis (); |
Returns the current time in milliseconds |
static void Arraycopy (Object src,int srcpos,object dest,int destpos,int length) |
Assigns a value from the specified source array referenced by SRC to an array of dest references, the assignment starts at the specified position and ends at the specified position in the destination array, overwriting the element in the corresponding position in the target array |
Static Properties getProperties () |
Gets the current system properties |
static string GetProperty (String key) |
Gets the system properties for the specified key description |
The GetProperties () method is used to get all the properties of the current system, which returns a Properties object that encapsulates all of the system's properties, which exist as key-value pairs.
Example01.java
Public classEXAMPLE01 { Public Static voidMain (string[] args) {//get the properties of the current systemProperties Properties =system.getproperties (); System.out.println (properties); //Gets the key (property name) of all system properties, returning the Set objectSet<string> PropertyNames =Properties.stringpropertynames (); for(String key:propertynames) {//Gets the current key (key) corresponding to the value (property value)String value =System.getproperty (key); SYSTEM.OUT.PRINTLN (Key+ "---->" +value); } }}
The results of the operation are as follows:
- Currenttimemillis () method
The method returns a Long that represents the difference between the current time and January 1, 1970 0 o'clock 0:0 0 seconds, in milliseconds, which is often referred to as a timestamp.
Example02.java
Public classEXAMPLE02 { Public Static voidMain (string[] args) {LongStartTime = System.currenttimemillis ();//current time at which the loop starts intsum = 0; for(inti = 0; i < 100000000; i++) {sum+=i; } LongEndTime = System.currenttimemillis ();//current time After the loop endsSYSTEM.OUT.PRINTLN ("program Run Time:" + (Endtime-starttime) + "MS"); }}
The results of the operation are as follows:
- Arraycopy (Object src,int srcpos,object dest,int destpos,int length)
The Arraycopy () method is used to quickly copy elements from an array to another array, where the specific function of the parameter is as follows:
SRC: Represents the source array.
Dest: Represents the target array.
Srcpost: Represents the starting position of the copied element in the source array.
Destpos: Represents the starting position of the copy to the destination array.
Length: Indicates the number of copied elements.
It is important to note that in the case of array copying, there must be enough copies of the elements in the source array to exist, and the target array must have enough space to hold the copied elements, otherwise there will be a cross-border exception.
Example03.java
Public classExample03 { Public Static voidMain (string[] args) {int[] FromArray = {101,102,103,104,105,106};//Source Array int[] ToArray = {201,202,203,204,205,206,207};//Target ArraySystem.arraycopy (FromArray, 2, ToArray, 3, 4); //print elements in the destination array for(inti = 0; i < toarray.length; i++) {System.out.println (i+ ":" +Toarray[i]); } }}
The results of the operation are as follows:
In addition to the methods in the example above, the system class has two common methods, namely the GC () and exit (int status) methods. The GC () method is used to start the Java garbage collector and to reclaim the garbage objects in memory. The exit (int status) method is used to terminate the currently running Java Virtual machine, where the parameter status is used to represent the current exception state, usually specified as 0, which indicates a graceful exit, or an abnormal termination.
1.2Runtime class
The runtime class represents the state of the virtual machine runtime and is used to encapsulate the VM process. Each time you start a virtual machine with a Java command that corresponds to a runtime instance, and there is only one instance, the class is designed with a singleton pattern, and objects cannot be instantiated directly. To get a runtime instance in a program, you can only use the following methods:
Runtime run = Runtime.getruntime ();
Because the virtual machine process is encapsulated in a runtime instance, it is common in the program to obtain information about the current virtual machine through the instance object of the class.
Example04.java
Public class Example04 { publicstaticvoid main (string[] args) { = Runtime.getruntime (); // get runtime instance System.out.println ("Number of processors:" + rt.availableprocessors () + "x"); System.out.println ("Amount of free Memory:" + rt.freememory ()/1024/1024 + "M"); System.out.println ("Maximum available memory:" + rt.maxmemory ()/1024/1024 + "M");} }
The results of the operation are as follows:
In the above example, the Availableprocessors () method, the Freememory () method, and the MaxMemory () method calculate the number of processors in the current virtual machine, the number of free memory and the maximum amount of memory, in bytes.
The runtime class provides an Exec () method used to execute a DOS command that achieves the same effect as entering a DOS command in a command-line window, as in the following example:
Example05.java
Public class Example05 { publicstaticvoidthrows IOException { = Runtime.getruntime (); // To create a runtime instance object Rt.exec ("notepad.exe"); // call the Exec () method }}
The exec () method of the runtime class returns a Process object that represents one of the operating system's processes through which the resulting new process can be managed, such as requiring the shutdown process to call the Destroy () method only.
Example06.java
Public class Example06 { publicstaticvoidthrows IOException, interruptedexception { = Runtime.getruntime (); Create runtime instance object Process process = Rt.exec ("notepad.exe"); Call the Exec () method thread.sleep (); program sleeps 3 seconds Process.destroy (); Kill Process }}
JAVA API (ii) System class and runtime class