‘壹’ java中的char 类型占几个字节
首先,java中的一个char的确是2个字节。java采用unicode,2个字节来表示一个字符。 一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个字节都为0,就是浪费了点空间。存汉字就占满了2个字节。
‘贰’ Java中char到底是多少字节
java中的char占2个字节
1:“字节”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
代码如下:
publicclassTest{
publicstaticvoidmain(String[]args){
Stringstr="中";
charx='中';
byte[]bytes=null;
byte[]bytes1=null;
try{
bytes=str.getBytes("utf-8");
bytes1=charToByte(x);
}catch(UnsupportedEncodingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
System.out.println("bytes大小:"+bytes.length);
System.out.println("bytes1大小:"+bytes1.length);
}
publicstaticbyte[]charToByte(charc){
byte[]b=newbyte[2];
b[0]=(byte)((c&0xFF00)>>8);
b[1]=(byte)(c&0xFF);
returnb;
}
}
结果如下:
bytes 大小:3
bytes1大小:2
‘叁’ Java中char到底是多少字节
java中的char占2个字节
1:“字节”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
代码如下:
public class Test {
public static void main(String[] args) {
String str= "中";
char x ='中';
byte[] bytes=null;
byte[] bytes1=null;
try {
bytes = str.getBytes("utf-8");
bytes1 = charToByte(x);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("bytes 大小:"+bytes.length);
System.out.println("bytes1大小:"+bytes1.length);
}
public static byte[] charToByte(char c) {
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
}
结果如下:
bytes 大小:3
bytes1大小:2
‘肆’ 请问JAVA中char占多少字节数
JAVA中char占2个字节。
第2个问题:JAVA因为有虚拟机,无论是在WINDOWS,还是在LINUX等系统中,只要有JAVA虚拟机,就是一样的。
‘伍’ 谁跟我说说在C,C++,JAVA中int,char,各占几个字节好么
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个字节。
(5)char几个字节java扩展阅读:
Java和C++的差异:
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。
Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。
Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
‘陆’ Java中char到底是多少字节
一个char占多少字节是跟字符集编码有关的,unicode编码中一个char占两个字节,java 是用unicode编码。但是常见的数据库中可能被设置为用utf-8,而utf-8一个字符占用的字节长度可能是一个字符、两个字符或三个字符,英文字符abc占用一个字节,中文字符占用三个字节。UTF8编码的字符中,第一个字节ASCII值大于等于224的,其与之后的2个字节一起组成一个UTF8字符,第一个字节ASCII值大于192等于小于224的,其与之后的1个字节组成一个UTF-8字符,第一个字节ASCII值小于192的,其本身成为一个UTF8字符。
‘柒’ Java中char到底是多少字节
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确是对象类型。对象是一种很复杂的数据类型,你要看一个对象具体占多少字节,可以把这个对象序列化后存入一个文本文件来看它具体占用了多少字节,当然这也不是精确的,因为序列化需要写入少量系统信息,但大致是对的。