Find the best tutors and institutes for Programming Languages

Find Best Programming Languages Classes

Please select a Category.

Please select a Locality.

No matching category found.

No matching Locality found.

Search for topics

Memory Management In JAVA

Pavan K.
07/02/2018 0 0

Memory Management in JAVA:

When you are starting the JVM then JVM will request some memory from the OS. if OS allocates the required memory then JVM will start otherwise the error message will be displayed and JVM will not start.


For example,

public class MemoryManagement {
public static void main(String str[]) {
System.out.println("**Main Started**");
Runtime rt = Runtime.getRuntime();
System.out.println("T : "+rt.totalMemory());
System.out.println("M : "+rt.maxMemory());


Execute as follows:

java -Xms512m MemoryManagement

java -Xmx1024m MemoryManagement

java -Xmx2048m MemoryManagement

-Xms stands for Initial Memory

-Xmx stands for Max Memory


When a JVM executes a program, it needs memory to store many things like:

i. Byte Codes and other information extracted from loaded class files.

ii. Objects created in your program.

iii. Methods Parameters.

iv. Values returned from methods.

v. Local variables declared.

vi. Intermediate resultsof computations.

The JVM organizes the memory into several runtime data areas. Some are:

1. Method Area:

  • When the class is loaded by the JVM then the class information will be stored into the method area.
  • Method area is also called as Class Heap.
  • Static Variable also gets the memory in method area.
  • Each instance of the JVM has one method area.
  • This area is shared by all threads running inside the virtual machine.
  • These memories should not be de-allocated during the execution of the application.

2. Heap Memory:

  • JVM places all objects into the heap memory.
  • Each instance of the JVM has one heap area.
  • This area is shared by all threads running inside the virtual machine.
  • If you have the reference of the object in your application then it is known as USED or LIVE object.
  • if you do not have the reference for the object in your application then the object is known as UNUSED or DEAD object and is called as Garbage.
  • There is no guarantee that memory for the UNUSED or DEAD objects will be de-allocated immediately.
  • When you create the object and required memory is not available in the HEAP then OutOfMemoryError will be thrown by JVM.

3. Stack Memory:

  • Stack Memory keep track of each and every method invocations. This is called Stack Frame.
  • Each thread has its own PC Register(Program Counter) and Java Stack Frame.
  • When the method or constructor is invoked then the implementation will be copied into the stack memory on the top of the stack. after completing the execution of the method or constructor, memory from the stack will be de-allocated.
  • Memory for local variables and method arguments are allocated in Stack Memory.
  • The program counter always keeps track of the current instruction which is being executed. After execution of an instruction, the JVM sets the PC to next instruction.
  • When you invoke method or constructor and required memory is not available in the STACK then StackOverflowError will be thrown by the JVM.
0 Dislike
Follow 2

Please Enter a comment


Other Lessons for You

AR ending verb(regular) in Spanish
Hablar- to speak Yo hablo Tú hablas él/ella/usted habla nosotros hablamos vosotros habláis ellos/ellas/ustedes hablan

Shreya B. | 15 Jul

0 0

Culture in Shorts
1. Infostretch introduced a virtual engagement initiative called Infostretch's Got Talent, which was an intense 3-week event on various segments such as Dance, Fitness & Singing. Employees participated...

Contact details
Direct contact to my mobile number-7084987366

Shivam Dwivedi | 09 Jul

0 0

Different Shapes of Chloroplast With Example
Cup Shaped -Chlamydomonas Stellate Shaped-zygonema Collar or Girdle Shaped- ulothrix Spiral or Ribbon Shaped-spirogyra Reticulate - Oedogonium Discoid- voucheria Spherical-chlorella

Abhinav Anand | 07 Jul

0 0

Trigonometry is a branch of mathematics that studies relationships between side lengths and angles of triangles. To solve the questions of trigonometry first, we need to learn all the trigonometric formulas....

Dolly K. | 26 Jun

0 0

Looking for Programming Languages Classes?

Find best tutors for Programming Languages Classes by posting a requirement.

  • Post a learning requirement
  • Get customized responses
  • Compare and select the best

Looking for Programming Languages Classes?

Find best Programming Languages Classes in your locality on UrbanPro

Post your learning requirement is India's largest network of most trusted tutors and institutes. Over 25 lakh students rely on, to fulfill their learning requirements across 1,000+ categories. Using, parents, and students can compare multiple Tutors and Institutes and choose the one that best suits their requirements. More than 6.5 lakh verified Tutors and Institutes are helping millions of students every day and growing their tutoring business on Whether you are looking for a tutor to learn mathematics, a German language trainer to brush up your German language skills or an institute to upgrade your IT skills, we have got the best selection of Tutors and Training Institutes for you. Read more