java中的字符都是以Unicode编码?那么这里的字符指的是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的字符都是以Unicode编码?那么这里的字符指的是啥相关的知识,希望对你有一定的参考价值。

例如 求“a加b等于“ 前6个字节 这里中文是2个字节 这里的英文字母呢
而且用substring 会吧中文看成一个字节处理 这些我都不明白 能详细说说么 大侠们

哈哈,小兄弟。

在计算机的身体里面都是电子和晶体管和强大的计算能力,它只认识两种状态,晶体管有电和

没有电,早期科学家们就给两种状态分别赋予了1 和 0。我们给他起了个名字叫做"位(bit)",

但是“位”这个小家伙,对于我们的世界来说太微观了,人们就给她找了个哥哥,

这个哥哥,就是 “字节(byte)”,一个字节是有 8 个 “位”来组成的,也就是说,这个"字

节"哥哥能表示 2的 8次方的状态,也就是 256种状态。

逐渐字节,就变为了计算机最小的存储结构,

扩展:

字节对于美国人来说,已经是足够了,因为他们只有26个字母,加大写也只有52,在加一些

特殊字符、标点、数字,256足已经表示他们想表达的意思,256种状态这就是最早期的

ASCII 字符集。

但是,对于中国来说,中国文化博大精深,256是远远不够表达俺们中国人的思想,后面

后续出现了 GBK 等

知道伟大的创想 Unicode 的出现,用四个字节来表示一个单元,也就是 256的4次方,

使整个世界语言包含其中。
参考技术A java中的字符就是指char类型的变量,无论中文还是英文,都是占2个字节,因为都是用Unicode编码,一个Unicode编码就是16位,也就是2个字节。
所以

char a='中';
char b='e';

都是合法的

substring 处理的最小单元就是一个字符,也就是一个char类型,2个字节
参考技术B Java中char就是字符,代表一个字母或者汉字或者数字或者一个标点符号什么的 参考技术C 是这样的:
java中的字符就是指char类型的变量,无论中文还是英文,都是占2个字节,因为都是用Unicode编码,一个Unicode编码就是16位,也就是2个字节。
所以

char a='中';
char b='e';

都是合法的

substring 处理的最小单元就是一个字符,也就是一个char类型,2个字节本回答被提问者采纳
参考技术D char类型的数据

Java:在Java中String是以Unicode保存的吗?

但是Unicode有UTF8、UTF16、GBK等多种实现方式,说String是以Unicode保存的具体是以哪种实现方式呢?还是说是以纯Unicode保存的?那岂不是会占用很多空间?

参考技术A 字符串在java内存中总是按unicode编码存储的。比如"中文",正常情况下(即没有错误的时候)存储为"4e2d 6587",如果charset为"gbk",则被编码为"d6d0 cec4",然后返回字节"d6 d0 ce c4".如果charset为"utf8"则最后是"e4 b8 ad e6 96 87".如果是"iso8859-1",则由于无法编码,最后返回 "3f 3f"(两个问号)。

java虚拟机采用UCS2(通用字符集)标准保存字符,所有的字符在内存中都是2个字节,这样虚拟机处理字符串的截取、长度和判断都非常容易。其他语言如PHP、Python也是,在运行时采用固定长度存储字符。
相对应编译后的class,java规定采用UTF-8保存,因为大部分是英文字符,只有一个字节,可以大量节省存储空间。本回答被提问者和网友采纳

以上是关于java中的字符都是以Unicode编码?那么这里的字符指的是啥的主要内容,如果未能解决你的问题,请参考以下文章

JAVA字符是以unicode处理,但是通过getbytes()方法,看到的是英文是一个byte而中文是三个byte

python字符编码与解码 unicode,str

Java:在Java中String是以Unicode保存的吗?

java里关于String的编码与解码

java如何把以unicode编码形式的字符串变成编码前的形式

Java中,内存的字符表示的是Java的unicode编码?系统中的文件表示的是系统的默认编码?