社区
Java SE
帖子详情
循环中对象创建的问题
kingvia
2006-05-27 07:13:47
如:
for(i=0;i<100;i++)
{
File f = new File();
f.deleteOnExit();
}
这中间难道是创建了100个f对象?谁能说一下他循环的时候的创建机制?
...全文
201
3
打赏
收藏
循环中对象创建的问题
如: for(i=0;i<100;i++) { File f = new File(); f.deleteOnExit(); } 这中间难道是创建了100个f对象?谁能说一下他循环的时候的创建机制?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
对象创建和循环有什么关系吗?
python-面向
对象
(一)
本课程主要讲解python
中
面向
对象
知识点,主要内容如下:1. 面向
对象
介绍2. 类和
对象
介绍3. 类的构成4. 类的抽取5.类的定义6.
对象
的
创建
7. 添加属性和使用属性8. self的使用9. 类和
对象
综合练习
循环
内
创建
对象
和
循环
外
创建
对象
对于在
循环
外
创建
对象
比较好还是在
循环
内
创建
对象
好
问题
,我认为应该具体情况具体分析:1、如果
循环
内没有需要将
对象
添加到集合内等一些情况,则应该在
循环
外
创建
对象
,这样可以节省内存,不用多次
创建
对象
造成内存的过度使用。 String end = ""; for(int i = 0 ; i<readfiles.size(); i++){ End = end+readfiles.get(i); } ...
for
循环
内
创建
对象
和外
创建
对象
BUG
问题
项目场景: for
循环
封装list数据
问题
描述: 使用for
循环
时,不小心将本应在
循环
内
创建
的
对象
创建
在了
循环
外。因出现不同结果,对此进行了研究。 1.
循环
外实例化
对象
(错误): List<String> list = new ArrayList<>(); Rank rank = new Rank(); for(int i = 1; i < 2; i++){ rank.setRank(i); list.add(rank); } 2.
循环
内实例化
对象
: List<
解决android for
循环
中
创建
对象
问题
最近碰到一个特别棘手的
问题
,一个医疗的项目,胎心监护的,需要从后台获取特别多的数据,进行折线图的绘制。硬件厂家提供了一个方案,他们提供的数据接口需要在for
循环
中
创建
对象
,一般来讲,在for
循环
中
创建
对象
,如果是数量比较水就不需要计较了,关键是这次需要
创建
几万个,这样就出
问题
了,没有办法在
循环
几万次,
创建
几万个
对象
,这是非常不靠谱的,也是非常耗费资源的,那怎么优化呢? ...
Java
循环
内
创建
对象
与
循环
外
创建
对象
内存使用情况
后来在下家公司,某同事同样出现这种
问题
,也是在
循环
内
创建
的
对象
。当时为了说服同事,自己本地写了demo发现,确实在
循环
外,
循环
内
创建
对象
,内存使用并没有区别。
循环
内
对象
是频繁
创建
对象
,会触发GC的。为什么现在又不会呢。之前遇到一个场景,在前公司,同事在批量查询数据转储的时候,应用频发的出现fullGc,内存溢出等异常日志。当时观看同事写的代码,是在
循环
内的
创建
对象
,接收DB查询结果再返回。部署,测试,果然好了。会频繁
创建
内存,但不会执行完后销毁,并且触发GC。如果启用逃逸分析是可以回收分配在栈上的
对象
的。
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章