Java 字符的字符串限制

Java 字符的字符串限制,java,string,sockets,Java,String,Sockets,我正在开发一个通过套接字发送字符串的应用程序,但我没有对字符串维度设置限制。 java中是否有字符或字节的字符串大小限制? 通过套接字发送一个非常大的字符串(数百万个字符)怎么样?有限制吗?有。字符串的最大大小是基础字符数组可以接受的最大字符数,即整数。最大值字符串的最大长度为整数。最大值INT=2147 483 647。当然,这是假设您有足够的内存来容纳该大小的字符串。字符串中的字符数由Java中数组的最大大小决定。这是Integer.MAX_值(2147483647)。您很可能在达到该限制之

我正在开发一个通过套接字发送字符串的应用程序,但我没有对字符串维度设置限制。 java中是否有字符或字节的字符串大小限制?
通过套接字发送一个非常大的字符串(数百万个字符)怎么样?有限制吗?

有。字符串的最大大小是基础字符数组可以接受的最大字符数,即
整数。最大值
字符串的最大长度为
整数。最大值INT=2147 483 647
。当然,这是假设您有足够的内存来容纳该大小的
字符串。

字符串中的字符数由Java中数组的最大大小决定。这是Integer.MAX_值(2147483647)。您很可能在达到该限制之前耗尽RAM

通过套接字发送的字符数没有限制


如果您的数据结构允许,您可以使用流式API。e、 g.如果字符串来自数据库或磁盘,请在将其读入内存时,将其沿套接字向下传输。这样,您就不必在内存中保存整个字符串。

您应该能够获得长度为Integer.MAX_值的字符串(根据Java规范,总是2147483647(2^31-1),字符串类用于内部存储的数组的最大大小)或最大堆大小的一半(因为每个字符都是两个字节),以较小者为准


这里可能有答案。好主意,我试试看。谢谢