精华内容
下载资源
问答
  • Java中Char占用几个字节???

    千次阅读 2019-09-16 10:51:46
    也许你看到的一些书上说Char占用2个字节,但事实真的的是这样吗? 非也: 与编码格式、中英文均有关系 uft8编码下3个字节;GBK编码下2个字节; 但是如果 char表示英文字母: 在uft8编码下个字节;在GBK...

    也许你看到的一些书上说Char占用2个字节,但事实真的的是这样吗?
    非也:
    与编码格式、中英文均有关系


    uft8编码下占3个字节;
    GBK编码下占2个字节;
    但是如果 char表示英文字母:
    在uft8编码下占一个字节;
    在GBK编码下还是占2个字节;
    所以GBK编码下:char类型的值不管是英文还是中文都是统一2个字节!

    展开全文
  • 主要介绍了java中的char占几个字节实例分析的相关资料,需要的朋友可以参考下
  • Java中char占用几个字节

    千次阅读 2016-11-14 16:43:00
    在讨论这问题之前,我们需要先区分unicode和UTF。 unicode :统一的字符编号,仅仅提供字符与编号间映射。符号数量在不断增加,已超百万。详细:[https://zh.wikipedia.org/zh-cn/Unicode] UTF :unicode转换格式...

    在讨论这个问题之前,我们需要先区分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来表示。
    详细:
    [https://docs.oracle.com/javase/tutorial/i18n/text/unicode.html]
    [http://www.zhihu.com/question/27562173]

    外码
    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编码中,英文字符占用一个字节;绝大多数汉字占用三个字节,个别汉字占用四个字节。

    EOF

    转载于:https://www.cnblogs.com/louiswong/p/6062417.html

    展开全文
  • 我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所的位数是不同的,比如... 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢? -------------------------- 文章抄袭自:http://www...
    我们平常说,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个字节。

    转载于:https://www.cnblogs.com/nevermorewang/p/7808092.html

    展开全文
  • 2字节: short , char 4字节: int , float 8字节: long , double 注:1字节(byte)=8位(bits) 附录: 1.编码与中文: Unicode/GBK: 中文2字节 UTF-8: 中文通常3字节,在拓展B区之后的是4字节 综上,...
    Java基本类型占用的字节数:
    1字节: byte , boolean
    2字节: short , char
    4字节: int , float
    8字节: long , double
    注:1字节(byte)=8位(bits)


    附录:
    1.编码与中文:

    Unicode/GBK: 中文2字节
    UTF-8: 中文通常3字节,在拓展B区之后的是4字节
    综上,中文字符在编码中占用的字节数一般是2-4个字节。


    /*

    测试代码:
    System.out.println("中".getBytes("UTF-8").length); ----> 6
    System.out.println("中中".getBytes("UTF-8").length); ----> 9
    System.out.println("中".getBytes("GBK").length); ----> 3
    System.out.println("中中".getBytes("GBK").length); ----> 6
    不好意思,我也不能解释,为什么打印的结果是这样的。大牛飘过还请指摘。

    */


    2.char在Java中的字节数:
    char在Java中占用2字节。
    Java编译器默认使用Unicode编码,因此2字节可以表示所有字符。

    测试代码:
    char a= (char) Integer.MAX_VALUE;
    System.out.println((int)a);
    结果输出:
    65535

    以上足以说明char占用的字节数是2字节。


    展开全文
  • java 中char占几个字节

    万次阅读 2018-07-30 11:23:18
    Java基本类型占用的字节数: 1字节: byte , boolean 2字节: short , char 4字节: int , float 8字节: long , double 注:1字节(byte)=8位(bits)...综上,中文字符在编码中占用的字节数一般是2-4个字节。  ...
  • java中的char占几个字节

    千次阅读 2018-06-01 14:33:07
    参考地址 :http://www.cnblogs.com/fnlingnzb-learner/p/7272348.html点击打开链接
  • java中char到底占几个字节的问题

    万次阅读 2018-06-03 11:01:38
    我一想char不是个字节吗?汉字在utf-8中个字节(还有四字节的),char不能够表示!对方一笑,让我后面查查 所以网上搜了一些资料查查,并做一个例子: public class BytesOfChar { public static byte[]...
  • Java 中的 char 占用几个字节 目录 [1. 概述](https://www.cnblogs.com/wuqinglong/p/10329368.html#1 概述) 答疑 [Java 的 char 一定是 2 个字节吗?]...
  • 在讨论这个问题之前,我们需要先区分unicode和UTF。 unicode :统一的字符编号,仅仅提供字符与编号间映射。符号数量在不断增加,已超百万。...其中utf8为变长表示,长度可能时1~6个字节;utf16为变长表...
  • 关于char占几个字节的问题如下

    千次阅读 2017-10-11 18:34:10
    一:char的初始化 char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。 Java中使用Unicode的原因是,Java的Applet允许全...
  • Java中char类型占用多少个字节

    千次阅读 2020-03-09 15:34:35
    Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。统一的字符编号,仅仅提供字符与编号间映射。符号...
  • -9223372036854775808 就是2^(-63) unsigned __int64的最大值:18446744073709551615 就是2^64-1 C和C++的类型所的字节数 【32位编译器】 char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即...
  • int、char、long各多少字节数?

    千次阅读 2019-04-28 10:18:06
    int、char、long各多少字节数: 1、int 4个字节,32位,取值范围:-2的31次方...2、char 2个字节,16位,取值范围:【0~65535】 65535是系统最大端口数 3、long 8个字节,64位,取值范围:-2的63次方到2的63次方-1 ...
  • 在C,C++,JAVA中int,char,各占几个字节 int 在C和C++的占用2个字节,在java中4个字节 char在C和C+中一个字节 Java中无论是汉字还是英文字母都是用Unicode编码来表示的,一个Unicode码是16位,每字节是8位,所以一...
  • 前言 bit: Binary digit(二进制数位)的缩写,意为“位”或“比特”,是计算机运算的基础,计算机中最小的存储单元,不能够单独寻址 ;一般用0和1表示。 byte: 字节,是计算机文件...占用字节及取值范围 整型: ...
  • char在struct中到底占几个字节!!

    千次阅读 2019-08-12 12:49:07
    struct student { char a; int c; short b; };... printf("%d\n", sizeof...这时char所给分配的是4个字节(因为int4个字节) struct student { char a; short b; int c; }; printf("%d\n", sizeof(struc...
  • Java基本类型占用的字节数: 1字节: byte , boolean 2字节: short , char 4字节: int , float 8字节: long , double 注:1字节(byte)=8位(bits)...综上,中文字符在编码中占用的字节数一般是2-4个字节。  ...
  • 字节 char 1 unsigned char 1 short 2 unsigned short 2 int 4 unsigned int 4 long 8 unsigned long 8 float 4 double 8 指针 8 代码验证 int a; printf(“sizeof(int)%ld”, sizeof(a))...
  • c++中charchar*类型所占字节

    万次阅读 2018-09-01 11:55:37
    char c = 'a'; char *p = &c; char a = 'abcd'; char *d[2]; printf("%d\n",sizeof(c)); //1 printf("%d\n",sizeof(p)); //4 printf("%d\n",sizeof(a)); //1 print...
  • java 中一个char包含几个字节

    千次阅读 2019-04-11 17:51:57
      char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char   char在设计之初的时候被用来存储字符,可是世界上有那么多字符,如果有1个字节...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 259,553
精华内容 103,821
关键字:

char占几个字节