字符串限制

时间:2015-04-27 12:16:08

标签: java string sockets

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

4 个答案:

答案 0 :(得分:1)

是。字符串的最大大小是基础char数组可以接受的最大字符数 Integer.MAX_VALUE

答案 1 :(得分:1)

字符串的最大长度为Integer.MAX_INT = 2 147 483 647。假设你有足够的内存来容纳那个大小的String

答案 2 :(得分:1)

字符串中的字符数由Java中数组的最大大小决定。那就是Integer.MAX_VALUE(2,147,483,647)。在达到该限制之前,您很可能会耗尽RAM。

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

如果您的数据结构允许,您可以通过使用流API来提供服务。例如如果你的字符串是从数据库中出来的,或者是从磁盘开始沿着套接字向下传输它,就像你将它读入内存一样。这样你就不必将整个字符串保存在内存中。

答案 3 :(得分:1)

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

Source