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方法内创建对象实例后,啥时候释放内存(引的主要内容,如果未能解决你的问题,请参考以下文章