黑马程序员技术交流社区
标题:
关于for循环优化的面试题
[打印本页]
作者:
齐浩
时间:
2015-3-21 22:55
标题:
关于for循环优化的面试题
今天去面试,遇上一道题没想出来,大家看一下怎么优化,说一下为什么
题:
for (int i = 0; i < 1000; I++){
Object obj = new Object();
}
我也没看懂它到底想优化什么
作者:
One_M
时间:
2015-3-21 23:04
是不是说 for 语句中初始化变量只在for语句中有效,for 语句结束该变量也消失,可节省内存??
作者:
关山明月
时间:
2015-3-21 23:19
Object obj=null;
for (int i = 0; i < 1000; I++){
obj = new Object();
}
复制代码
不知道是不是这样,原因是:如果将Object obj 定义在循环里面的话,会在栈内存中循环开辟空间存储引用型变量obj,直到开辟1000个,而放在外面的话,只需要开辟一个就行,只需要将新创建的对象地址值赋给obj即可。这样就大大节省了内存空间。
作者:
wkz_crystal
时间:
2015-3-22 02:21
应该是楼上说的意思吧!!
作者:
hamesksk
时间:
2015-3-22 02:41
好模糊的感觉
作者:
齐浩
时间:
2015-3-22 07:38
关山明月 发表于 2015-3-21 23:19
不知道是不是这样,原因是:如果将Object obj 定义在循环里面的话,会在栈内存中循环开辟空间存储引用型 ...
确实是这样,我面试的时候就没想到这一点,,,高手
作者:
勇闯☀☀黑马
时间:
2015-3-22 07:52
3楼说的很详细
作者:
tony_ygz
时间:
2015-3-22 08:14
只能是3楼说的情况了,其他没什么好优化的,就是不知道建立这么多对象干什么用
作者:
huhanghao
时间:
2015-3-22 09:01
三楼正解
作者:
qq871406754
时间:
2015-3-22 09:08
关山明月 发表于 2015-3-21 23:19
不知道是不是这样,原因是:如果将Object obj 定义在循环里面的话,会在栈内存中循环开辟空间存储引用型 ...
三楼说的对
作者:
wenke
时间:
2015-3-22 09:09
搞的什么面试题 只有一个变量引用 循环1000次 有999个无引用的对象 都需要垃圾回收 这什么面试题
作者:
JARVIS_YJ
时间:
2015-3-22 09:23
顶三楼,学习一下
作者:
みぎ
时间:
2015-3-22 09:37
三楼正解。
作者:
tu3
时间:
2015-3-22 09:44
11楼说得对,建这么多对象有什么用啊?
这是单单用来面试的吗,还是说有什么实际应用?
作者:
179407246
时间:
2015-3-22 09:48
控制表达式的变量怎么是大写的?
作者:
中华小便当
时间:
2015-3-22 10:00
学习了
作者:
绝望
时间:
2015-3-22 10:04
应该是三楼的意思,但是感觉这种题出的毫无意义啊,前999个对象就是为了被回收准备的?
作者:
q8893616
时间:
2015-3-22 11:29
学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2