那么,我在想,JTextArea的长度是无限的吗?或者最多可以使用多少个字符?
不,JTextArea不是infinite。
JTextArea我们可以根据仅返回 a 的事实来暗示最大长度String,其中 alength返回 a int。这意味着 a 的最大长度JTextArea必然为Integer.MAX_VALUE,但由于数组开销,会稍微小一些。但在实践中,您可能会发现它要小得多,因为需要将数组以连续的方式放置在内存中,因此这将取决于 JVM 有多少可用内存以及它的碎片程度。
我们可以进一步研究这一点并查看PlainDocument,它是 的默认Document使用JTextArea,它使用 achar[]作为其内部数据结构,就像 一样String。
这进一步具体化了 a 的极限JTextArea被限制为小于的推理Integer.MAX_VALUE
你可以看看Java数组有最大尺寸吗?,为什么我不能创建大尺寸的数组?为什么ArrayList 的最大数组大小是 Integer.MAX_VALUE - 8?讨论为什么数组不能声明为Integer.MAX_VALUE
现在,在有人建议您可以编写 a 的链表实现之前Document,请不要忘记两者Document和JTextArea依赖String,这是一个关键的限制因素
| 归档时间: |
|
| 查看次数: |
2674 次 |
| 最近记录: |