for(;;){
a();
}
Public Static void a(){
Data data = new Data();
};
Class MyTime{
Static Data data = null;
Public Static void a(){
data = new Data();
};
}
for(;;){
MyTime.a();
}
请问以上两组代码所创建的Data data对象个数一样多吗?
虽然一个是static,一个是函数局部变量,但是调用多少次new,就创建多少个对象
如果for循环次数相同,那么就是创建了对象一样多。只不过,这些对象很快又被回收了。
【以下回答由 GPT 生成】
从代码段1来看,每次调用a()方法都会创建一个新的Data对象。而在代码段2中,虽然也是调用a()方法,但是data对象是一个静态变量,只会创建一个Data对象并不断地对其进行重新赋值,所以并不会创建多个Data对象。因此,代码段1所创建的Data对象个数会比代码段2所创建的对象个数多。
答案是:不一样多。
【相关推荐】