for(int i=0;i<10000;++i){  Object obj = new Object();  System.out.println("obj="+obj);  }  应改成  Object obj = null;  for(int i=0;i<10000;++i){  obj = new Object();  System.out.println("obj="+obj);  }

解决方案 »

  1.   

    在for循环内部创建的话,每次执行循环都会创建对象,没什么特别明显坏处,只是会消耗内存。所以我们通常在for循环外部实例化对象,因为它执行一次
      

  2.   

    看需求对象只在循环内使用, 在外面创建,如字符串拼接的stringbufffer
    对象在循环结束后需要继续使用, 在内部创建,如在循环内新建随机数,添加到map中,要新建Integer对象
      

  3.   

    在外面设为空,在内部new更好
      

  4.   

    怎么会没有区别 区别大了 你循环个100 1000 次 没问题 你要成千上万次循环 还能没区别?jdbc 那块 循环遍历去 resultset值得时候 数据量大的话 你循环一次 就创建一个对象 受不了吧 
      

  5.   

    Object obj是创建对象引用,引用的实例地址。 new Object();是创建对象实例
    两者都会占用系统资源。
    改进之前for循环中创建了10000次引用和10000实例,改进后是创建了1次引用,10000实例。
    在方法执行完后内存资源会被回收
      

  6.   

    我来挖坟,中文互联网上充斥着这个问题的讨论和文章,80%的回答都是错误的。java, 在循环外定义变量这种写法,不但性能不会提升,反而内存占得更多请看我在知乎上的详细回答,如果对你有用,请点过赞,谢谢 https://www.zhihu.com/question/31751468/answer/211449991