簡體   English   中英

StringBuilder.append()中的OutOfMemoryError甚至有足夠的內存

[英]OutOfMemoryError in StringBuilder.append() even with more than enough memory

即使將內存大小設置為32 GB並僅將500 MB文件讀入構建器,我也會從java.lang.StringBuilder.append中收到OutOfMemoryError。

java.lang.OutOfMemoryError: null
    at java.base/java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:214) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:206) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:173) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:538) ~[na:na]
    at java.base/java.lang.StringBuilder.append(StringBuilder.java:174) ~[na:na]
    at com.github.loa.indexer.service.index.base64.Base64Encoder.encode(Base64Encoder.java:31) ~[classes/:na]

發生這種情況是因為StringBuilder要分配的字節數組將需要比JVM允許的更大的數組大小(超過2147483647個aka Integer.MAX_VALUE元素)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM