第一种方法: InvoiceNavInvoices invoice = null;
do
{
invoice = null;
invoice = new InvoiceNavInvoices();
                              ...
}while()第二种方法:
do
{
InvoiceNavInvoices invoice = new InvoiceNavInvoices();
                                      ....
}while()java内存gc

解决方案 »

  1.   

    第一种好吧,
    不过第一种的
    invoice = null;
    还有必要么?
      

  2.   

    两种方式各有利弊,看你自己的习惯,还有项目要求的风格。
    第一种方式,循环内 invoice = null;是没必要的;如果循环后还有比较多的语句的话,可以在循环后加 invoice = null;。
      

  3.   

    我觉得两种方法均可以:
    1.可以用单例去解决【这样每次循环的都是同一个对象】;
    2.你可以用匿名对象[new A(),这样也可以.]
      

  4.   

    这是不懂java之表现局部变量在运行时是存在局部变量表的,而局部变量表的大小是在编译的时候就确定下来了,进入这个方法的时候就分配好了空间像第二种,循环中的invoice是会重用的,javap一下class文件就知道
      

  5.   

    貌似记得设置为null可以加速GC回收
      

  6.   

    有事儿没事儿把Python解释器的源码翻看一下,有好处。