『壹』 java中定义一个char数组,有最大长度限制吗
你好,在我的机器上没有这个错误,我是这样写的 char[] chars = new char[30000];
java规定数组的长度只要整型就可以的,所以理论上最大长度是整型的最大值2147483647,超过这个值运行的时候就会抛java.lang.NegativeArraySizeException这个异常,就是超出了数组规定最大长度,所以30000是绝对没问题的,不过我试过char[] chars = new char[2147483647];运行的时候会抛java.lang.OutOfMemoryError: Java heap space,也就是我设置分配给java的内存不够大,
而你所说的code too large,这个应该跟数组没关系的,应该其他代码有问题的,你可以检查一下看看,还是不行的话留个联系方式,远程给我看看什么情况,或者把你写的代码贴出来看看
『贰』 java char的长度
char类型的是占两个字节;
一个字节是8位(bit),所以也可以表示为16bit。版
可以通过以下方式权定义一个char类型:
char c = 'a'; 实际占一个字节。
char d = '高';实际占两个字节。
扩展:计算一个字符串的字节长度。
如:”我是gdb“占的字节数就是2+2+1+1+1 =7个字节。
『叁』 java中,能用char[]定义字符串数组吗如果可以,怎么定义它,怎么输出它
不能,java中string[]定义字来符串
『肆』 在JAVA中当定义char c='a',String s="abc"时,分别在内存中占多少字节
Java中无论是汉字还是英文字母都是用Unicode编码来表示的,一个Unicode码是16位,每字节是8位,所以一个Unicode码占两字节。但是英文字母比较特殊,源自于8位(1字节)的ASCII吗,于是在Unicode码仅使用了低8位(1字节)就可以表示,高8位的话不使用也无所谓。所以
char c='a';
System.out.println(c.getBytes().lenth()),得到的是1(字节)
但汉字就完整地使用了16位(2字节)的Unicode,所以
char c='中';
System.out.println(c.getBytes().lenth()),得到的是2(字节)
综上,c='a'在内存中确实只占1字节,但这不意味着String s="abc"在内存中只占3字节。应该这么说,String s="abc"至少在内存中占3字节。这是因为char是基本数据类型,而String确是对象类型。对象是一种很复杂的数据类型,你要看一个对象具体占多少字节,可以把这个对象序列化后存入一个文本文件来看它具体占用了多少字节,当然这也不是精确的,因为序列化需要写入少量系统信息,但大致是对的。