黑马程序员技术交流社区

标题: 关于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
  1. Object obj=null;
  2. for (int i = 0; i < 1000; I++){
  3.     obj = new Object();
  4. }
复制代码


不知道是不是这样,原因是:如果将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