main方法结束后,这个方法里new出来的对象还存在在内存中吗?
publicclassTest{Stringname;publicStringgetName(){returnname;}publicvoidsetName(String...
public class Test {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
Test t = new Test();
t.setName("tt");
System.out.println(t.getName());
}
}
main方法结束后,new Test()这个对象还会存在内存中吗? 展开
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
Test t = new Test();
t.setName("tt");
System.out.println(t.getName());
}
}
main方法结束后,new Test()这个对象还会存在内存中吗? 展开
4个回答
展开全部
一般不会(自动的垃圾回收)。也可以用方法System.gc()请求java垃圾回收。Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存的有限性,JVM在实现的时候都有一个由垃圾回收所管理的堆。垃圾回收是一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收的功能。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main方法结束后,java虚拟机已经退出,所以对象也就不存在了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不存在了,Test这个对象只要被调用完就会被释放
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JAVA比C/C++一个方便的地方就是不需要考虑指针问题,基于JVM再COMPILE的,当main结束后,虚拟机退出,对象不存在了,不需要去考虑内存回收的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询