2013-07-11 68 views
-1

一个简单的问题:Java中String对象的最大大小(以字节或字符表示)是多少?Java中String对象的最大大小是多少?

一些背景信息:我想构建一条SQL语句(INSERT INTO tbl VALUES (...), (...), ...),我不想超出对象的大小。

回答

7

字符串包含一个字符数组,所以我认为在Java String中最多可以有2^31 - 1个字符。这是Integer.MAX_VALUE的值。

任何大于此值的字符串,甚至不能索引所有元素。

+1

假设您有足够的可用内存。 – 2013-07-11 22:18:52

+2

如果我正确地做了数学计算,那一个字符串大概是4GB。 – 2013-07-11 22:21:19

1

理论上它可能是Integer.MAX_VALUE字符长。

2

从源代码

class String implements java.io.Serializable { 
    private char value[]; // 4 bytes + 12 bytes of array header 
    private int offset; // 4 bytes 
    private int count; // 4 bytes 
} 

什么都Integer.MAX_VALUE值的是(这在大多数系统会2^31 -1

这需要4GB的内存,但这样的一个非常大的量( Java使用16位Unicode)

所以Integer.MAX_VALUE的最小和可用内存

相关问题