日期:2014-05-20  浏览次数:20852 次

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();