java中循环外定义变量与循环内定义变量占用内存与效率问题?
本帖最后由 Inflexible_lin 于 2013-01-15 09:53:29 编辑
当数据量很大时,即内层循环次数达到百万级以上时,是按现在这样定义变量好呢?
还是把变量定义放到图中蓝色部分???
请大师帮忙解答一下,个人觉得是目前这样定义比较好!
Sheet sh = null; //sheet
Row row0 = null; //每个sheet的标题
Row row = null; //具体的行变量,避免多次定义
Cell cell = null; //单元格变量,避免多次定义
for(int i=0;i< sheet_num;i++){
sh = wb.createSheet();
row0 = sh.createRow(0);
//生成每个sheet的title
for(int cellNum = 0,colLength =colTitles.length; cellNum < colLength; cellNum ++) {
cell = row0.createCell(cellNum);
cell.setCellValue(colTitles[cellNum]);
cell.setCellStyle(createStyle(wb));
}
//每个SHEET有最多100万行数据
for(int rowNum = 1; rowNum <= maxSheetRowNum; rowNum++) {
if(!rs.next()){
break;
}
//System.out.println(rowNum);
row = sh.createRow(rowNum);
for(int cellNum = 0,colLength =colTitles.length; cellNum < colLength; cellNum ++) {
cell = row.createCell(cellNum);
cell.setCellValue(rs.getString(cellNum + 1));
}
//每当行数达到设置的值就刷新数据到硬盘,以清理内存
if(rowNum % rowAccess == 0){
((SXSSFSheet)sh).flushRows();