Java 一个arraylist可以容纳多少个字符串?

Java 一个arraylist可以容纳多少个字符串?,java,arraylist,web-crawler,stack-overflow,Java,Arraylist,Web Crawler,Stack Overflow,我正在尝试写一个网络爬虫。当我浏览一个大页面时,我的arraylist变量不能保存所有数据。它抛出了以下异常。 线程“thread-0”java.lang.StackOverflower中出现异常。 保存这些URL的最佳方式是什么,因为我需要访问这些URL和子URL等等 我曾想过保存到数据库或写入文件,但这些机制可能会降低爬虫程序的性能。理论上,ArrayList的容量限制为Integer.MAX\u VALUE。但这取决于JVM可用的内存量。如果有足够的堆空间来存储字符串,则它将存储大量字符串

我正在尝试写一个网络爬虫。当我浏览一个大页面时,我的arraylist变量不能保存所有数据。它抛出了以下异常。 线程“thread-0”java.lang.StackOverflower中出现异常。

保存这些URL的最佳方式是什么,因为我需要访问这些URL和子URL等等


我曾想过保存到数据库或写入文件,但这些机制可能会降低爬虫程序的性能。

理论上,ArrayList的容量限制为
Integer.MAX\u VALUE
。但这取决于JVM可用的内存量。如果有足够的堆空间来存储字符串,则它将存储大量字符串。

理论上,ArrayList容量的限制是
整数。MAX\u值
。但这取决于JVM可用的内存量。如果有足够的堆空间可用于存储字符串,则它将存储大量字符串

当我浏览一个大页面时,我的arraylist变量不能保存所有数据

那是不对的

Exception in thread "Thread-0" java.lang.StackOverflowError
StackOverflowException
不是由于
ArrayList
容量不足(即2^31-1个条目)引起的。它是由过度递归引起的

可能您没有跟踪已经访问过的URL,并且遇到了链接周期

当我浏览一个大页面时,我的arraylist变量不能保存所有数据

那是不对的

Exception in thread "Thread-0" java.lang.StackOverflowError
StackOverflowException
不是由于
ArrayList
容量不足(即2^31-1个条目)引起的。它是由过度递归引起的

可能您没有跟踪已经访问过的URL,并且遇到了链接周期