Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4259032
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T05:43:45+00:00 2026-05-21T05:43:45+00:00

I was trying to see usage of Runtime.freeMemory(). Documentation says it ‘Returns the amount

  • 0

I was trying to see usage of Runtime.freeMemory().

Documentation says it ‘Returns the amount of free memory in the Java Virtual Machine’

I executed a simple program test this. Program below:

public class Test {

 public static void main(String a[]) throws Exception {
    System.out.println("Total memory: " +Runtime.getRuntime().totalMemory());
    System.out.println("Free memory: " +Runtime.getRuntime().freeMemory());
    Integer intArr[]= new Integer[10000];
    for(int i =0; i<10000;i++){
        intArr[i] = new Integer(i+500);
    }
    System.out.println("Free memory: " +Runtime.getRuntime().freeMemory());
    System.out.println("sample print :"+ intArr[0]);
    System.out.println("sample print :"+ intArr[5000]);
    System.out.println("sample print :"+ intArr[9999]);
 }  
}

Output:

Total memory: 67108864

Free memory: 61822408 < Before allocating 10000 objects>

Free memory: 61822408 < Size remains same even after allocating 10000 objects. why?>

sample print :500

sample print :5500

sample print :10499

Since the objects are created on heap, the ‘Free memory’ value printed second time should be less than the first output, right?

But it prints same value. Can anyone please explain why it print same value?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T05:43:46+00:00Added an answer on May 21, 2026 at 5:43 am

    I know it is not the answer you wanted – but according to the JavaDoc – freeMemory returns:

    an approximation to the total amount
    of memory currently available for
    future allocated objects, measured in
    bytes.

    Just to test it – I took your code and ran twice. Once with the array size set to 10,000 – and once with 100.
    I also added another print just after:

    Integer intArr[]= new Integer[10000];
    

    When running with 10,000 – I got the expected result, a decrease of 40,0016 bytes in free memory just after the array instantiation.

    When running with 100 I got the exact same amount of free memory before and after array instantiation – not the desired effect.

    As most answers already stated – as it is a native method – is JVM dependent and therefore can act differently on any platform.
    I’m running on Windows 7 with the Eclipse built-in JVM (v3.6).

    But I think the key word here is – approximation.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to find out how much memory my objects take to see how
I'm trying to see if there's a way to get a consistent unit test
I'm trying to see if anyone knows how to cluster some Lat/Long results, using
For fun I am trying to see how far I can get at implementing
(see here for the problem I'm trying to solve) How do you get hibernate
I'm trying to call the OpenThemeData (see msdn OpenThemeData ) function but I couldn't
I was trying to programmatically go through presidential campaign contributions to see which web
I am trying to figure out Messagebox( ownerWindow, ... ). Using reflector I see
I'm trying to add multi-language support to an OpenSocial application. I see that I
I'm working on a forums system. I'm trying to allow users to see the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.