C/C++中的int占4个字节,char占1个字节;Java中的int占4个字节,char却占1~6个字节,要根据使用的编码和具体字符而定。
目前在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647,也就是-2^31~2^31-1。
C/C++,char是单字符数据类型,只占1个字节。
Java中,内码(运行内存)的char使用UTF16的方式编码,一个char占用两个字节,但是某些字符需要两个char来表示。所以,一个字符会占用2个或4个字节。
Java中,外码中char使用UTF8的方式编码,一个字符占用1~6个字节。
扩展资料:
Java和C++的差异:
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。
Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。
Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
参考资料来源:百度百科-INT (数据类型)
参考资料来源:百度百科-char (计算机语言关键字)
参考资料来源:百度百科-Java (计算机编程语言)
char在C和C+中占一个字节
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(字节)
char始终都是一个字节。在16位dos或Windows
95下,int占两个字节,long是四个字节;在98以后的Windows和Linux中,是32位,int占四个字节,与long相同。
Java:
因为是跨平台的,无论在哪里,int都是四个字节,因为字符是用Unicode编码的,所以char是两个字节。