title: Java application memory usage
body: <p>I have been writing a small java application (my first!), that does only a few things at the moment.  Currently, it runs the Main class which launches a gui class (a class I wrote that extends JFrame that only contains a JTextArea), a class that loads a local file through a BufferedInputStream that is approximately 40kb, and class that loads a entry from a Java properties file.  </p>
  
  <p>Everything works wonderfully, however, I was watching the Windows task manager and I noticed something that struck me as odd.  When I launch the application, the RAM usage jumps to about 40MB while it loads the local file and pulls a few values from it to display in the JTextArea, which seems normal to me because of the JVM, Java base classes, etc.  At this point, however, when the application has finished loading the file, itmerely sits idle, as I currently don't have it doing anything else.  While it is sitting idle, as long as the window is active, the application's memory usage starts climbing by 10-20kb every second.  This strikes me as odd.  If I click on another program to make this one the inactive window, the memory still rises, but at a much slower rate (about 10kb every 3-5 seconds).</p>
  
  <p>I have not tested to see how far it would go up, but this strikes me as very odd behavior.  Is this normal Java behavior?  I guess it is possible that my code could be leaking memory, but I'm not sure how.  I did make sure to close the BufferedInputStream I am using, and I can't see what else would cause this.</p>
  
  <p>I'm sorry if my explanation doesn't make sense, but I would appreciate any insight and/or pointers anyone may have.</p>
  
  <p>UPDATE:</p>
  
  <p>Upon suggestion, I basically stripped my application down to the Main class which simply calls the gui class.  The gui class only extends JFrame and sets the window size, close operation, and visible properties.  With these changes, the memory still grows at 10-20kb, but at a slower rate.  This, in conjuction with other advice I have received leads me to believe that this is just Java.  I will continue to play with it and let you all know if I find out anything else interesting.</p>