首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

循环内重复new对象来进行插入数据,怎样比较省内存和快。(高手来,初学者勿扰)

2013-02-24 
循环内重复new对象来进行插入数据,怎样比较省内存和快。(高手来,菜鸟勿扰)第一种方法:InvoiceNavInvoices i

循环内重复new对象来进行插入数据,怎样比较省内存和快。(高手来,菜鸟勿扰)
第一种方法:

InvoiceNavInvoices invoice = null;
do
{
invoice = null;
invoice = new InvoiceNavInvoices();
                              ...
}while()

第二种方法:
do
{
InvoiceNavInvoices invoice = new InvoiceNavInvoices();
                                      ....
}while() java 内存 gc
[解决办法]

引用:
两种是有区别的,
第一种少了声明变量的开销,但是多了上下文切换的开销
第二种多了声明变量的开销,但是少了上下文切换的开销



这是不懂java之表现

局部变量在运行时是存在局部变量表的,而局部变量表的大小是在编译的时候就确定下来了,进入这个方法的时候就分配好了空间

像第二种,循环中的invoice是会重用的,javap一下class文件就知道
[解决办法]
引用:
引用:两种是有区别的,
第一种少了声明变量的开销,但是多了上下文切换的开销
第二种多了声明变量的开销,但是少了上下文切换的开销


这是不懂java之表现

局部变量在运行时是存在局部变量表的,而局部变量表的大小是在编译的时候就确定下来了,进入这个方法的时候就分配好了空间

像第二种,循环中的invoice是会重用的,……

+1

方法所用变量在编译后就确定了,所以是会重用的。

热点排行
Bad Request.