Java方法内创建对象实例后,啥时候释放内存(引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java方法内创建对象实例后,啥时候释放内存(引相关的知识,希望对你有一定的参考价值。

参考技术A 一般情况下,当JVM发现堆内存比较紧张、不太够用时,它就会着手进行垃圾回收工作(也就是你说的释放内存,同时有一个前提,GC的前提是这个对象已经“死了”,也就是长时间没有使用,并且没有被全局变量,如map等所引用)。但是你要认清这样一个残酷的事实:JVM进行GC的时间点是无法精确预知的。因为GC启动的时刻会受到各种运行环境因素的影响,随机性太大。

释放占用的内存

在Java中,如果我们创建了一个对象实例,则这个实例就会在内存中开辟一块空间;当我们给这个实例各种数据处理,这些数据的处理都经过内存,最终还会在这个对象内存中保存最终的数据;如果在处理完了之后,建议将这个对象开辟的内存空间关闭,将占用内存给释放掉。什么时候释放呢?在这个对象处理完所要处理的事情后就可以释放了。

例如:

    public class Student{

       private string name;

      private int age;

     //getter和setter方法

   }

 public static void main(String[] args){

       Student  s=new Student();

       s.setName("一");

       s.setAge(21);

      System.out.println("叫"+s.getName()+"的年龄是:"+s.getAge());//或者s.name,s.age都可以

     //上面就是在内存中开辟了一个叫s的内存空间,在这个空间里有两个小房间,一个叫name,一个叫age,然后分别往里面存了两个值:一个字符串"一";一个整型数21.

     //最后从s中把两个小房间的值取出来,然后打印出来。事情就做完了,做完了后这个s的内存就空闲了,所以就可以释放掉了。

     if(s!=null){s=null;}

  }

在Java中是不用我们自己释放的,因为Java虚拟机会帮我们做这样的事,所以对内存我们是从来不关心的。而C++就不同了,它不会自动释放内存,需要我们自己动手释放。否则会造成内存问题的。

以前一直不理解,现在也算理解了一点点,写出来供以后写代码时参考。


本文出自 “编程开发” 博客,请务必保留此出处http://w7984.blog.51cto.com/5147254/1852540

以上是关于Java方法内创建对象实例后,啥时候释放内存(引的主要内容,如果未能解决你的问题,请参考以下文章

释放占用的内存

关于java内存释放的问题

java static 方法与普通方法区别

java中实例化方法是啥意思

成员变量(实例变量)&局部变量&静态变量(类变量)的区别

java中的静态方法有啥作用?