-
java char是几个字节_关于java中char占几个字节,汉字占几个字节
2021-03-06 01:05:57我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的... 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢?--------------------------在讨论这个问题之前,我们需要先区分unicode和...我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个。而所有汉字在java程序中我们都可以简单的用 char c = '字' 表示; 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢?
--------------------------
在讨论这个问题之前,我们需要先区分unicode和UTF。
1、unicode :统一的字符编号,仅仅提供字符与编号间映射。符号数量在不断增加,已超百万。详细:[
https://zh.wikipedia.org/zh-cn/Unicode]
2、UTF :unicode转换格式 (unicode transformation format) 。定义unicode中编号的编码方式。utf8和utf16便是其中两种实现方式。其中utf8为变长表示,长度可能时1~6个字节;utf16为变长表示,长度可能是2或4个字节。详细:UTF8 [
https://zh.wikipedia.org/zh-cn/UTF-8] UTF16 [
https://zh.wikipedia.org/zh-cn/UTF-16]
接着,要分清内码(internal encoding)和外码(external encoding)。
1、内码 :某种语言运行时,其char和string在内存中的编码方式。
2、外码 :除了内码,皆是外码。
要注意的是,源代码编译产生的目标代码文件(可执行文件或class文件)中的编码方式属于外码。
先看一下内码
JVM中内码采用UTF16。早期,UTF16采用固定长度2字节的方式编码,两个字节可以表示65536种符号(其实真正能表示要比这个少),足以表示当时unicode中所有字符。但是随着unicode中字符的增加,2个字节无法表示所有的字符,UTF16采用了2字节或4字节的方式来完成编码。Java为应对这种情况,考虑到向前兼容的要求,Java用一对char来表示那些需要4字节的字符。所以,java中的char是占用两个字节,只不过有些字符需要两个char来表示。
详细:
外码
Java的class文件采用UTF8来存储字符,也就是说,class中字符占1~6个字节。
Java序列化时,字符也采用UTF8编码,占1~6个字符。
总结:
1、java中内码(运行内存)中的char使用UTF16的方式编码,一个char占用两个字节,但是某些字符需要两个char来表示。所以,一个字符会占用2个或4个字节。
2、java中外码中char使用UTF8的方式编码,一个字符占用1~6个字节。
3、UTF16编码中,英文字符占两个字节;绝大多数汉字(尤其是常用汉字)占用两个字节,个别汉字(在后期加入unicode编码的汉字,一般是极少用到的生僻字)占用四个字节。
4、UTF8编码中,英文字符占用一个字节;绝大多数汉字占用三个字节,个别汉字占用四个字节。
----------------------------------------------
综上,java运行时采用utf16编码,多数汉字占2个字节,一个char就够了,少数占4个字节,需要两个char来表示。
说明:utf16中,通常汉字2字节,CJKV扩展B区、扩展C区、扩展D区的汉字占4个字节。
-
char几个字节java_java中char占几个字节?
2021-02-12 15:02:54java中char占几个字节?java中的一个char占用2个字节。java采用unicode,2个字节来表示一个字符。 一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个字节都为0,就是浪费了点空间。存...java中char占几个字节?
java中的一个char占用2个字节。java采用unicode,2个字节来表示一个字符。 一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个字节都为0,就是浪费了点空间。存汉字就占满了2个字节。
1:“字节”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
例子代码如下: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是用unicode来表示字符,"中"这个中文字符的unicode就是2个字节。
String.getBytes(encoding)方法是获取指定编码的byte数组表示,
通常gbk/gb2312是2个字节,utf-8是3个字节。
如果不指定encoding则取系统默认的encoding。
php中文网,大量的免费Java入门教程,欢迎在线学习!
-
java中char是几个字节_关于java中char占几个字节,汉字占几个字节
2021-02-12 19:39:39我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的... 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢?--------------------------在讨论这个问题之前,我们需要先区分unicode和...我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个。而所有汉字在java程序中我们都可以简单的用 char c = '字' 表示; 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢?
--------------------------
在讨论这个问题之前,我们需要先区分unicode和UTF。
1、unicode :统一的字符编号,仅仅提供字符与编号间映射。符号数量在不断增加,已超百万。详细:[https://zh.wikipedia.org/zh-cn/Unicode]
2、UTF :unicode转换格式 (unicode transformation format) 。定义unicode中编号的编码方式。utf8和utf16便是其中两种实现方式。其中utf8为变长表示,长度可能时1~6个字节;utf16为变长表示,长度可能是2或4个字节。详细:UTF8 [https://zh.wikipedia.org/zh-cn/UTF-8] UTF16 [https://zh.wikipedia.org/zh-cn/UTF-16]
接着,要分清内码(internal encoding)和外码(external encoding)。
1、内码 :某种语言运行时,其char和string在内存中的编码方式。
2、外码 :除了内码,皆是外码。
要注意的是,源代码编译产生的目标代码文件(可执行文件或class文件)中的编码方式属于外码。
先看一下内码
JVM中内码采用UTF16。早期,UTF16采用固定长度2字节的方式编码,两个字节可以表示65536种符号(其实真正能表示要比这个少),足以表示当时unicode中所有字符。但是随着unicode中字符的增加,2个字节无法表示所有的字符,UTF16采用了2字节或4字节的方式来完成编码。Java为应对这种情况,考虑到向前兼容的要求,Java用一对char来表示那些需要4字节的字符。所以,java中的char是占用两个字节,只不过有些字符需要两个char来表示。
详细:
外码
Java的class文件采用UTF8来存储字符,也就是说,class中字符占1~6个字节。
Java序列化时,字符也采用UTF8编码,占1~6个字符。
总结:
1、java中内码(运行内存)中的char使用UTF16的方式编码,一个char占用两个字节,但是某些字符需要两个char来表示。所以,一个字符会占用2个或4个字节。
2、java中外码中char使用UTF8的方式编码,一个字符占用1~6个字节。
3、UTF16编码中,英文字符占两个字节;绝大多数汉字(尤其是常用汉字)占用两个字节,个别汉字(在后期加入unicode编码的汉字,一般是极少用到的生僻字)占用四个字节。
4、UTF8编码中,英文字符占用一个字节;绝大多数汉字占用三个字节,个别汉字占用四个字节。
----------------------------------------------
综上,java运行时采用utf16编码,多数汉字占2个字节,一个char就够了,少数占4个字节,需要两个char来表示。
说明:utf16中,通常汉字2字节,CJKV扩展B区、扩展C区、扩展D区的汉字占4个字节。
-
java中的char占几个字节实例分析
2020-08-30 22:57:28主要介绍了java中的char占几个字节实例分析的相关资料,需要的朋友可以参考下 -
char几个字节java_java中的char占几个字节实例分析
2021-02-27 10:32:03java中的char占几个字节实例分析1:“字节”是byte,“位”是bit ;2: 1 byte = 8 bit ;char 在Java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。例子代码如下:public class Test {public static...java中的char占几个字节实例分析
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是用unicode来表示字符,"中"这个中文字符的unicode就是2个字节。
String.getBytes(encoding)方法是获取指定编码的byte数组表示,
通常gbk/gb2312是2个字节,utf-8是3个字节。
如果不指定encoding则取系统默认的encoding。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
-
java 汉字 char_关于java中char占几个字节,汉字占几个字节
2021-03-06 05:04:45我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的... 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢?--------------------------在讨论这个问题之前,我们需要先区分unicode和... -
关于java中char占几个字节,汉字占几个字节
2019-09-30 06:24:03我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如... 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢? -------------------------- 文章抄袭自:http://www... -
char几个字节java_java中的char占几个字节 | 学步园
2021-02-27 10:32:46char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。例子代码如下:public class Test {public static void main(String[] args) {String str= "中";char x ='中';byte[] bytes=null;... -
java中的char占几个字节
2017-08-02 10:02:001:“字节”是byte,“位”是bit ... char 在Java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。 例子代码如下: [java]view plaincopy print? publicclassTest{ public... -
java char占几个字节
2013-04-14 18:32:30一直认为java的char占2个字节, FileWriter的write (int c)函数一直认为输出两个字节; 但今天测了下,结果和我想的不一样; FileWriter fw =new FileWriter("test.txt"); char c1 ='你'; char c2='1'; int ... -
关于char占几个字节的问题如下
2017-10-11 18:34:10一:char的初始化 char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。 Java中使用Unicode的原因是,Java的Applet允许全... -
mysql的char占几个字节_mysql varchar和char类型在不同字符集下的字符数和字节数计算...
2021-02-01 11:09:49场景一:CHAR(30)的最大字符数和最大字节数计算1.CHAR(30)在UTF-8字符集下计算最大字符数和最大字节数(product)root@localhost [test]> show create table t1\G*************************** 1. row *************... -
byte,int,short,long,float,double,char占几个字节?能表示的最大最小值是多少?
2019-03-26 14:46:51byte占1个字节8位,取值范围为-2^7~2^7-1 int占4个字节32位,取值范围为-2^31~2^31-1 short占2个字节16位,取值范围为-2^15~2^15-1 long占8个字节64位,取值范围为-2^63~2^63-1 float占4个字节... -
java中char占几bits_char类型占几个字节
2021-02-26 14:53:12在java中,char类型占2个字节;原因:Java编译器默认使用Unicode编码,因此2字节(16位)可以表示所有字符。java中占2个字节有short和char;而byte和boolean占1个字节,int和float占4个字节。本教程操作环境:windows7... -
java中char到底占几个字节的问题
2020-04-23 11:15:37我一想char不是占一个字节吗?汉字在utf-8中占三个字节(还有四字节的),char不能够表示!对方一笑,让我后面查查 所以网上搜了一些资料查查,并做一个例子: public class BytesOfChar { public static byte[] ... -
java 中char占了几个字节
2018-07-30 11:23:18Java基本类型占用的字节数: 1字节: byte , boolean 2字节: short , char 4字节: int , float 8字节: long , double 注:1字节(byte)=8位(bits)...综上,中文字符在编码中占用的字节数一般是2-4个字节。 ... -
Java中Char占用几个字节???
2019-09-16 10:51:46也许你看到的一些书上说Char占用2个字节,但事实真的的是这样吗? 非也: 与编码格式、中英文均有关系 uft8编码下占3个字节;GBK编码下占2个字节; 但是如果 char表示英文字母: 在uft8编码下占一个字节;在GBK... -
int 几个字节 java_谁跟我说说在C,C++,JAVA中int,char,各占几个字节好么
2021-02-12 15:31:24展开全部C/C++中的int占4个字节,62616964757a686964616fe59b9ee7ad9431333431353363char占1个字节;Java中的int占4个字节,char却占1~6个字节,要根据使用的编码和具体字符而定。目前在一般的电脑中,int占用4字节... -
char型变量占几个字节_敢问一个字节有多长
2020-12-29 00:59:39一、功能介绍C语言中字节长度的思考C语言中不同类型数据所占字节数的思考C语言中sizeof关键字的介绍二、问题分析简单看下面一段代码,想一下输出应该是什么。charcVar=0x0100;intiVar=0;printf("cVar=%d\n",cVar); ... -
在C,C++,JAVA中int,char,各占几个字节
2020-04-28 11:51:22在C,C++,JAVA中int,char,各占几个字节 int 在C和C++的占用2个字节,在java中4个字节 char在C和C+中占一个字节 Java中无论是汉字还是英文字母都是用Unicode编码来表示的,一个Unicode码是16位,每字节是8位,所以一... -
char在struct中到底占几个字节!!
2019-08-12 12:49:07struct student { char a; int c; short b; };... printf("%d\n", sizeof...这时char所给分配的是4个字节(因为int占4个字节) struct student { char a; short b; int c; }; printf("%d\n", sizeof(struc... -
python int占几个字节_int占几个字节(c语言)?
2021-02-09 03:26:41int在16位编译器中占两个字节,int在32位编译器中占四个字节。“int”是整数类型的类型名,长整型的类型名为...1、16位编译器char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节unsi... -
Java中char,short,int,long占几个字节和多少位
2018-03-09 09:39:16char占用的是2个字节 16位,所以一个char类型的可以存储一个汉字。 整型: byte:1个字节 8位 -128~127 short :2个字节 16位 int :4个字节 32位 long:8个字节 64位 浮点型: float:4个字节 32 位 doub...