java中list最多可以存储多少条数据?40万可以吗

 我来答
百度网友062f9c8
2016-07-03 · TA获得超过1254个赞
知道小有建树答主
回答量:840
采纳率:60%
帮助的人:728万
展开全部
和jdk配置的内存大小有关系,和list里存的数据结构有关系。

从语言上来看,java.util.List是个接口,其下有N多实现,最常用的是ArrayList和LinkedList及其各种继承或同步化实现(如Vector/Queue/Stack这些的)
ArrayList内部是拿数组存储,那么上限就是Integer.MAX_VALUE
LinkedList内部是个链表,理论上是无限的

另外,List里放的东西都是在内存里的(当然你也可以自己实现一个放磁盘上的),因此能放多少也取决于你放的东西的大小以及种类。
大小方面很容易计算,一个对象如果1K,那400,000个就至少要占用400M的内存(不算其他占用)。
虚拟机内存分类方面,如果是普通对象,一般占用的都是堆(Heap)空间,如果是常量或是类似String.intern()出来的东东,则占用的是永生带(Permanent Generation)。

实际开发中,虚拟机默认内存大小根据不同的虚拟机实现有所不同,可以在启动应用时用-Xmx调整最大堆大小,比如调整堆最大大小为2G:
java -Xmx2048m cn.gefostudio.App
调整永生带最大大小为1G:
java -XX:MaxPermSize=1024m cn.gefostudio.App
Qting
2016-07-04 · 超过19用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:19.8万
展开全部
不建议放这么多的数据量,严重影响系统性能。
这个可以调用存储过程执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式