java内存分页

List<BofCytProduct> bofCytProductArray=getAllOnProdcuct();
            List<BofCytProduct> list = new ArrayList<BofCytProduct>();
            for(BofCytProduct bofCytProduct:bofCytProductArray){
                if(!ProductCodeConstants.JI_JIN.equals(bofCytProduct.getTypeCode())){
                    list.add(bofCytProduct);
                }
            }
            Collections.sort(list, new CompareProduct());

            int count = list.size();
            QueryResult<CytProductListDto> queryResult = new QueryResult<CytProductListDto>(count, pager.getPageSize(),
                    pager.getPageNumber());
            // 构造参数
            List<BofCytProduct> cytProductList = new ArrayList<BofCytProduct>();
            if(list.size()>(queryResult.getIndexNumber()+queryResult.getPageSize())){
                cytProductList.addAll(list.subList(queryResult.getIndexNumber(), queryResult.getIndexNumber()+queryResult.getPageSize()));
            }else{
                cytProductList.addAll(list.subList(queryResult.getIndexNumber(),count));
            }
/**
     * 根据产品优先级比较,比如1、2,1放在第一位<br>
     *
     * @author 赵毅(13092551)
     */
    private static class CompareProduct implements Comparator<BofCytProduct>, Serializable {

        private static final long serialVersionUID = -9212971658450782319L;

        @Override
        public int compare(BofCytProduct o1, BofCytProduct o2) {
            Integer product1 = Integer.parseInt(o1.getProductPriority());
            Integer product2 = Integer.parseInt(o2.getProductPriority());
            return product1.compareTo(product2);
        }

}

如果数据量大,这个方式应该不适合。

java内存分页

时间: 2024-07-28 17:56:36

java内存分页的相关文章

Java内存分页工具类

前言 工作过程中,经常会遇到基于内存数据进行分页处理的情况,例如批量更新数据库时,集合过大需要分批更新的情况,还有例如对缓存中的集合数据进行分页获取这种情况. 本文提供了通用的内存分页工具,参考了网络上的一些代码,主要基于 subList() 方法实现,希望对你有所帮助!工具类源码在本文底部. 本文原文链接地址:http://nullpointer.pw/Java%E5%86%85%E5%AD%98%E5%88%86%E9%A1%B5%E5%B7%A5%E5%85%B7%E7%B1%BB.htm

Java的大内存分页支持

原文:http://kilik.iteye.com/blog/677253 最近在研究java的性能调优,顺手写了一个小程序来测试性能问题.这个程序用来进行矩阵乘法运算,如下: for (int i = 0; i < 2048; i++) for (int j = 0; j < 2048; j++) for (int k = 0; k < 2048; k++) res[i][j] += mul1[i][k] * mul2[k][j]; 在ubuntu 10.04(64bit)下,JDK

Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

最近老是遇见服务器内存溢出的问题,故在网上搜了搜,总结了一些java内存溢出的解决方式 java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小.程序不严密,产生了过多的垃圾. 导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 代码中存在死循环或循环产生过多重复的对象实体: 使用的

[转]Java内存溢出详解及解决方案

原文地址:http://blog.csdn.net/xianmiao2009/article/details/49254391 内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题.内存溢出与锁表则不然,一般现象是操作一般时间后系统越来越慢,直到死机,但并不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码. 更严重的是内存溢出与数

Java内存区域与内存溢出异常-内存区域

Java内存区域与内存溢出异常 概述 对于 C 和 C++程序开发的开发人员来说,在内存管理领域,程序员对内存拥有绝对的使用权,但是也要主要到正确的使用和清理内存,这就要求程序员有较高的水平. 而对于 Java 程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个 new 操作去写配对的 delete/free 代码,而且不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好.不过,也正是因为 Java 程序员把内存控制的权力交给了 Java 虚拟机,一旦出现内存泄漏和

JVM高级特性与实践(一):Java内存区域 与 内存溢出异常

对于从事C.C++的开发人员而言,在内存管理领域,他们具有绝对的“权利”——拥有每个对象的控制权,并担负着每个对象生命周期的维护责任.而对于Java开发人员而言,在虚拟机自动内存管理机制的帮助下,无需为每一个创建new操作去配对 delete/free 代码,减少内存泄漏和内存溢出的问题,这些都交给了Java虚拟机去进行内存控制,但是正因如此,当出现相关问题时,若不了解JVM使用内存规则,就难以排查错误.接下来以此篇文章记录学习Java虚拟机内存各个区域概念.作用.服务对象以及可能产生的问题.

《深入理解Java虚拟机》笔记02:Java内存区域与内存溢出异常

1.运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间: 有的区域随着虚拟机进程的启动而存在 有些区域则依赖用户线程的启动和结束而建立和销毁 根据<Java虚拟机规范(Java SE 7版)>的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示. 1.1 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的

JVM优化之调整大内存分页(LargePage)

转自:http://cjjwzs.iteye.com/blog/1059381 本文将从内存分页的原理,如何调整分页大小两节内容,向你阐述LargePage对JVM的性能有何提升作用,并在文末点明了大内分页的副作用.OK,让我们开始吧! 内存分页大小对性能的提升原理 首先,我们需要回顾一小部分计算机组成原理,这对理解大内存分页至于JVM性能的提升是有好处的. 什么是内存分页? 我们知道,CPU是通过寻址来访问内存的.32位CPU的寻址宽度是 0~0xFFFFFFFF ,计算后得到的大小是4G,也

[转]Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

原文地址: http://outofmemory.cn/c/java-outOfMemoryError java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小.程序不严密,产生了过多的垃圾. 导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 代码中存在死循环或循环产生过多重复的对