String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE了,2147483647;又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串。
1. String 的最大长度 从源码来看,String 其实就是由 char 数组实现,根据以下构造方法推断,count 是 int 类型,那么char value[]中最多应该可以保存Integer.MAX_VALUE个字符,也就是2147483647个字符 但是实际编译的时候,String 中最多可以有65534个字符,如果超过这个数,就会在编译期报错。 这是因为字符串字面量直...
严格来说,String确实有长度限制。 String内部使用一个char[]数组来存放字符串的内容,数组下标是整型(也可以参考String的构造方法String(char value[], int offset, int count) ,可以知道字符数量是用整型表示),整型(Java规定32位)表示范围是2G,也就是说,Java数组最大的长度是2G,即字符串不能超过2G个字符。 Java...
它的长度取决于 JVM 所分配的内存大小。在 32 位的 JVM 中,String 类的最大长度为 2^31-1(即2...
对于Java字符串的最大长度,要分为2种情况进行讨论。 ① 编译期:一般情况下,最大长度为65534。 ② 运行期:Integer.MAX_VALUE。 接下来通过对一个字节码文件反编译来解释一下为什么? 一、编译期String字符串的最大长度为什么是65534? 当我们使用javac命令对.java文件进行编译后,会生成相关类的.class文件。
简介:java中String是由一个char数组实现(jdk1.9中是byte数组),而它的长度count是int类型,所以最大长度是2的32次方,也就是4G。 java中String是由一个char数组实现(jdk1.9中是byte数组),而它的长度count是int类型,所以最大长度是2的32次方,也就是4G。
那么我们就知道了,字符传的大小就跟数组的长度有直接关系了,另外在定义数组长度的时候,我们最多只能定义 int 类型的最大值,也就是 Integer.MAX_VALUE = 0x7fffffff; 而且 String 类的 length 方法的返回值也可以看出来,返回的类型是 int ,数值最大也是 Integer.MAX_VALUE = 0x7fffffff; ...
publicString(charvalue[],intoffset,intcount){ ... } 上面的count值就是字符串的最大长度。在Java中,int的最大长度是2^31-1。所以在运行时,String 的最大长度是2^31-1。 但是这个也是理论上的长度,实际的长度还要看你JVM的内存。我们来看下,最大的字符串会占用多大的内存。
首先,String类提供了一个length方法,返回值为int类型,而int的取值上限为2^31 -1。 所以理论上String的最大长度为2^31 -1。 达到这个长度的话需要多大的内存吗? String内部是使用一个char数组来维护字符序列的,一个char占用两个字节。如果说String最大长度是2^31 -1的话,那么最大的字符串占用内存空间约等于4G...