Introduce to Class OutOfMemoryError in Java
Class OutOfMemoryError in Java is thrown from an application when the java vi
rtual machine can not create an object and can not allocate space for the object as it is out of memory and no more memory could be made available by the garbage collector at that time of the execution.
OutOfMemoryError is quite popular in DevOps Engineers. OutOfMemoryError signals that the interpreter has run out of memory(and the garbage collector is unable to free any memory).
in short, an OutOfMemoryError is thrown when an attempt to allocate memory fails.
The structure of the class OutOfMemoryError is given by:
public class java.lang.OutOfMemoryError extends java.lang.VirtualMachineError{
//constructor
public OutOfMemoryError();
//constructs an empty OutOfMemoryError object that is an object with no message specified.
public OutOfMemoryError(String message);
//constructs an OutOfMemoryError object with the message specified.
}
The class OutOfMemoryError also inherits methods from class Object and Throwable.
From Object class | From Throwable class |
---|---|
clone() | fillInStackTrace() |
getClass() | getMessage() |
notify() | printStackTrace() |
wait() | printStackTrace(PrintWriter) |
wait(long, int) | getLocalizedMessage() |
wait(long) | printStackTrace(PrintStream) |
equals(Object) | |
toString() | |
finalize() | |
hashCode() | |
notifyAll() |
OutOfMemory in Java comes for the below reasons:
java.lang.OutOfMemory is thrown if the below conditions occur:
- reason stack_trace_with_native_method.
- Sacrifice a child.
- Kill a process.
- Not able to produce a new native thread.
- Java heap space is full
- Garbage collectors overhead limit reached or exceeded.
- Permgem space issue
- Metaspace issue.