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

Java 专栏收录该内容
22 篇文章 1 订阅

从语言上来看,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
  • 3
    点赞
  • 4
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值