Package java.lang

## Class Runtime

- java.lang.Object
- - java.lang.Runtime

-     public class Runtime
      extends Object

  Every Java application has a single instance of class `Runtime` that allows the application to interface with the environment in which the application is running. The current runtime can be obtained from the `getRuntime` method.

  An application cannot create its own instance of this class.

  See Also:
    `getRuntime()`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Runtime()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `exit​(int status)` | Terminates the currently running Java virtual machine by initiating its shutdown sequence.
    `long` | `freeMemory()` | Returns the amount of free memory in the Java Virtual Machine.
    `void` | `gc()` | Runs the garbage collector.
    `static Runtime` | `getRuntime()` | Returns the runtime object associated with the current Java application.
    `long` | `maxMemory()` | Returns the maximum amount of memory that the Java virtual machine will attempt to use.
    `long` | `totalMemory()` | Returns the total amount of memory in the Java virtual machine.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Runtime

          public Runtime()

  - ### Method Detail

    - #### getRuntime

          public static Runtime getRuntime()

      Returns the runtime object associated with the current Java application. Most of the methods of class `Runtime` are instance methods and must be invoked with respect to the current runtime object.
      Returns:
        the `Runtime` object associated with the current Java application.

    - #### exit

          public void exit​(int status)

      Terminates the currently running Java virtual machine by initiating its shutdown sequence. This method never returns normally. The argument serves as a status code; by convention, a nonzero status code indicates abnormal termination.

      The ``System.exit`` method is the conventional and convenient means of invoking this method.

      Parameters:
        `status` - Termination status. By convention, a nonzero status code indicates abnormal termination.

    - #### freeMemory

          public long freeMemory()

      Returns the amount of free memory in the Java Virtual Machine. Calling the `gc` method may result in increasing the value returned by `freeMemory.`
      Returns:
        an approximation to the total amount of memory currently available for future allocated objects, measured in bytes.

    - #### gc

          public void gc()

      Runs the garbage collector. Calling this method suggests that the Java virtual machine expend effort toward recycling unused objects in order to make the memory they currently occupy available for quick reuse. When control returns from the method call, the virtual machine has made its best effort to recycle all discarded objects.

      The name `gc` stands for "garbage collector". The virtual machine performs this recycling process automatically as needed even if the `gc` method is not invoked explicitly.

      The method `System.gc()` is the conventional and convenient means of invoking this method.

    - #### maxMemory

          public long maxMemory()

      Returns the maximum amount of memory that the Java virtual machine will attempt to use. If there is no inherent limit then the value `Long.MAX_VALUE` will be returned.
      Returns:
        the maximum amount of memory that the virtual machine will attempt to use, measured in bytes

    - #### totalMemory

          public long totalMemory()

      Returns the total amount of memory in the Java virtual machine. The value returned by this method may vary over time, depending on the host environment.

      Note that the amount of memory required to hold an object of any given type may be implementation-dependent.

      Returns:
        the total amount of memory currently available for current and future objects, measured in bytes.