java 怎么往内存里存放 list

struts2 action 一个方法
读取数据库查询出两个list

我这个方法在页面经常调用- 因为每次调用都要查询数据库速度上比较慢。

怎么处理 好呢?

第1个回答  2013-01-25
我的建议是把这个list放在session中,如果需要的话,直接读取session。方便
也可以放在cookie中,但是cookie的安全性不高
第2个回答  2013-01-24
看情况了,如果该数据是属于不更新的那种,可以把它放到某个类静态变量里面,这样在加载类的时候就会一直存在内存里了
第3个回答  推荐于2017-09-15
最简单的方法建一个类,里边定义一个静态的list成员变量,每次去list时检查,如果list为null就数据库查询,如果list已经存在,就直接返回存在的list就行了,高级点的,加个时间比较,超过一定的时间间隔获取list就去数据库查询后获得,如果没有超时的就直接返回保存的list。
如果有需要可以自己写一个缓存管理器,用来把需要的数据缓存在内存中,并且在根据自定义的时间间隔或事件触发自动更新缓存。本回答被提问者和网友采纳

在系统启动时,使用java怎么将数据加载到内存数组中
1: 使用监听器,ServletContextListener这个监听器就是监听系统启动的,然后你实现这个接口,重写init()方法,在里面做一些操作,也就是放进容器内一些数组数据;2: 把数据写进 .properties文件中,通过spring框架扫描进内存,然后用的时候读出来

java如何将从数据库取出的数据预先存入到内存?
获取的时候直接cache.get(key)就可以了。java如何从数据库读取数据并写入txt文件:将数据查询出来放在list中,然后写入文件。给你个写入的类,查询数据自己如果能搞定最好了。FileWriter fileWriter=new FileWriter("c:\\\\Result.txt");int [] a=new int[]{11112,222,333,444,555,666};for (int i...

java语言,当list中数据量过大而产生java.lang.OutOfMemoryError: Java...
1.设置虚拟机内存-xmax 500m 2.数据文件化保存。封装一个新的类,然后把数据放入到本地文件中,需要时,按需读取内容。(PS:效率可能不高)3.使用其它缓存工具。比如memcached

JAVA中map中存储list集合问题。
这个没什么问题啊,map中放的是list的一个引用,等它取出list再赋给另一个list,同样也是给了个引用地址,等输出的时候再去内存单元中找值,发现有值就输出来。附:所以list不管是什么时候加东西进去,其他对象有引用到它的都一样有值

Java 面试宝典:Redis 中的 List 是如何实现的?
通过配置参数 list-max-ziplist-size 和 list-compress-depth 来平衡内存使用和操作性能,提供更灵活的存储方案。在实际应用中,选择合适的 List 实现取决于元素数量、大小以及操作类型。zipList 适合少量、小数据存储;linkedList 适合高效两端操作;quickList 则提供了灵活性和平衡的内存使用与操作性能。

java 中的List 最大可以存放多少条数据
从语言上来看,java.util.List是个接口,其下有N多实现,最常用的是ArrayList和LinkedList及其各种继承或同步化实现(如Vector\/Queue\/Stack这些的)ArrayList内部是拿数组存储,那么上限就是Integer.MAX_VALUE LinkedList内部是个链表,理论上是无限的 另外,List里放的东西都是在内存里的(当然你也可以自己...

java的一个dto对象中有个List<bean> list,想往list对象中用这种方法dt...
private List<bean> list = new ArrayList<bean>;public void setList(...){} public List<bean> getList(){} dto.getList().add(bean);因为你的list在dto中没有被实例化,所以你在 new dto的时候,这个list在内存中是没有被分配内存地址的,所以dto.getList()就会报空指针异常。

java中 List 与Set 的区别
由Collection接口派生的两个接口是List和Set。List接口 List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。和下面要提到的Set不同,List允许有相同的元素。 除了具有Collection接口必备的iterator()方法外,...

java 对象的属性在内存里以什么形式存在?
如果分配在堆中的java对象包含属性,这可以分两种情况分析:1.属性是基本类型(byte,char,int等)的 则对象的堆内存保存的就是基本类型的值本身。2.属性是引用类型的(String是引用类型的)则对象的堆内存中保存的只是这个属性的引用,属性所指向的对象分配在其它堆内存中。所以,你的理解1是对的,它...

Java中,List里面最多可以存储多少数据
要是ArrayList存的是int、float的基本数据类型,其最大的容量是2的21次方,要是存的是纯对象类型,其最大容量是2的19次方,它的限制条件的很大一个是内存问题,就是计算机的堆空间用完了

相似回答