局部变量放到 循环体外还是内?

胖子吴 2016-07-14 06:15:16
//数组导致
public class Demo6_12 {

/**
* @param args
*/
public static void main(String[] args) {

System.out.print("Please Enter the numbers: ");
java.util.Scanner input = new java.util.Scanner(System.in);
double[] numbers = new double[10];
//录入测试化数据
for(int i=0; i<10; i++){
numbers[i] = input.nextDouble();
}
//reverse 后 输出
System.out.println("The reverse array: " );
numbers = reverse(numbers);
for(double num : numbers)
System.out.print(num + " ");
}
//转置数组
public static double[] reverse (double[] x){

//double temp = 0; //放到外边还是内部 ?
for(int i=0; i<x.length/2; i++){
double temp = x[i];
x[i] = x[x.length-1-i];
x[x.length-1-i] = temp;
}
return x;
}

}

如题://double temp = 0; //放到外边还是内部 ? 放到内部是不是每次重新定义 temp 变量,前一次循环中的temp 被垃圾回收了? 那么是否占用内存? 还是定义在外边比较好?
谢谢!
...全文
329 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 bao110908 的回复:
参考这个帖子吧: http://bbs.csdn.net/topics/391091289#post-399502254
尽量把变量声明放在循环体里面。原则:尽可能地减少局部变量的作用范围。
  • 打赏
  • 举报
回复
ITjavaman 2016-07-14
  • 打赏
  • 举报
回复
定义外边比较好,放在里面每次循环都会产生一个新的对象,而GC的回收并不是立刻回收的,每个新的对象都要开辟新的内存空间

62,628

社区成员

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

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