2013-07-11 101 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的最小和可用內存

相關問題