Java char类型以什么编码存储字符?

本文仅限于新手了解char基本编码知识。

        JDK API中明确表示char字符信息基于 Unicode 标准。官方的一句话似乎结束了这篇文章,答案虽然已成定局,但还是有解释说明的余地。

        网上有些教程说char用的是Ascii编码。比如在学习char类型的时候,可以把Ascii编码的整形字符直接赋值给char,打印出来Ascii表对应的字符。这也是我遇到的问题。

        毋庸置疑char是Unicode编码,那为什么可以直接输入输出Ascii对应的字符?Unicode占用两个字节,而Ascii占用一个字节。其实Unicode包含了所有Ascii字符,同时对应方式也没发生改变。可以理解为Unicode是Ascii的超集。自然可以使用Ascii表对应的字符,但是就因为这说char是Ascii编码就太错了。

//char基本有以下几种格式:

char b = 97; //97就是Ascii对应表中的十进制97对应a
​
char c = '\u0061'; //'\u0061' 是a的Unicode编码,\u 表示这串字符是Unicode编码(Unicode编码是由16进制构成的)
​
char d = 0x0061; //0x0061 就是97的变形,把十进制换算为16进制
​
char e = 'a';
​
//上面全部输入的都是a;

阅读原文

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_慎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值