Download.java:244行的代码:text=text.replaceAll("<\\s*?/?\\s*?span\\s*?[^<]*?>","");
出错信息:
Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuffer.append(StringBuffer.java:224)
at java.lang.StringBuffer.append(StringBuffer.java:284)
at java.util.regex.Matcher.appendReplacement(Matcher.java:746)
at java.util.regex.Matcher.replaceAll(Matcher.java:813)
at java.lang.String.replaceAll(String.java:2190)
at Test.Download.combineTextUnit(Download.java:244)
at Test.Download.getWebpage(Download.java:122)
at Test.Spider.run(Spider.java:74)
at java.lang.Thread.run(Thread.java:619)
java执行字符串替换时内存溢出是什么原因
答案:2 悬赏:80
解决时间 2021-02-19 10:37
- 提问者网友:堕落的邪教徒
- 2021-02-18 12:53
最佳答案
- 二级知识专家网友:深街酒徒
- 2021-02-18 13:42
被替换的字符串太长了,或者在启动程序时加大内存的大小
全部回答
- 1楼网友:情窦初殇
- 2021-02-18 14:20
你好!
Java的那个好像有默认的大小,字符串超多多少好像就溢出了,我记着我学过,你可以下载网上的视频看看,毕向东的Java视频v教程
如有疑问,请追问。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯