可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
C/C++中的int占4个字节,char占1个字节;Java中的int占4个字节,char却占1~6个字节,要根据使用的编码和具体字符而定。
Java中,内码(运行内存)的char使用UTF16的方式编码,一个char占用两个字节,但是某些字符需要两个char来表示。所以,一个字符会占用2个或4个字节。
Java中,外码中char使用UTF8的方式编码,一个字符占用1~6个字节。
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。
Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。
Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
Java中无论是汉字还是英文字母都是用Unicode编码来表示的,一个Unicode码是16位,每字节是8位,所以一个Unicode码占两字节。但是英文字母比较特殊,源自于8位(1字节)的ASCII吗,于是在Unicode码仅使用了低8位(1字节)就可以表示,高8位的话不使用也无所谓。所以
System.out.println(c.getBytes().lenth()),得到的是2(字节)
跟机器位数有关,Java不知道,在C和C++中,如果机器是16位的,int占用2个字节,如果是32位或64位则是4个字节,现在机器一般都是占用4个字节,字符类型占用1个字节。
发表评论