循环中对象创建的问题

kingvia 2006-05-27 07:13:47
如:
for(i=0;i<100;i++)
{
File f = new File();
f.deleteOnExit();
}


这中间难道是创建了100个f对象?谁能说一下他循环的时候的创建机制?
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingvia 2006-05-27
  • 打赏
  • 举报
回复
哇,厉害,这是汇编还是什么
grant999 2006-05-27
  • 打赏
  • 举报
回复
import java.io.*;
class B {


public static void main(String[] args) {


for(int i=0;i<100;i++)
{
File f = new File("f:\\a.txt");
//f.deleteOnExit();
}

}

}
反编译结果:



public static void main(java.lang.String[]);
Code:
0: iconst_0
1: istore_1
2: iload_1
3: bipush 100
5: if_icmpge 28
8: new #2; //class java/io/File
11: dup
12: ldc #3; //String f:\a.txt
14: invokespecial #4; //Method java/io/File."<init>":(Ljava/lang/String;)V

17: astore_2
18: aload_2
19: invokevirtual #5; //Method java/io/File.deleteOnExit:()V
22: iinc 1, 1
25: goto 2
28: return
每次循环都NEW了一个新对象,17: astore_2表明,引用变量f每一次指向这个新对象
林巅峰 2006-05-27
  • 打赏
  • 举报
回复
对象创建和循环有什么关系吗?

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧