栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中String的字符编码是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中String的字符编码是什么?

1)字符串是对象,通常包含

char
数组和字符串的长度。字符数组通常实现为一个连续的16位字数组,每个字都包含一个以本机字节顺序排列的Unipre字符。

2)将字符值分配给整数会将16位Unipre字符代码转换为等效的整数。因此

'c'
,U + 0063变为
0x0063
或99。

3)由于每个

String
对象都是对象,因此它包含除其类成员以外的其他信息(例如,类描述符词,锁/信号量词等)。

附录
对象的内容取决于JVM的实现(它确定与每个对象相关的固有开销)以及类的实际编码方式(即,某些库可能比其他库更有效)。

示例
一个典型的实现将为每个对象实例分配两个字的开销(用于类描述符/指针和一个信号灯/锁控制字);一个

String
对象还包含一个
int
长度和一个
char[]
数组引用。字符串的实际字符内容存储在第二个对象(
char[]
数组)中,该对象又分配了两个单词,再加上一个数组长度的单词,再加上
char
该字符串所需的16位元素(加上在创建字符串时保持闲置状态)。

附录2 仅在大多数
情况下, 一个 字符代表 一个
Unipre字符的情况才成立。这意味着UCS-2编码,并且在2005年之前适用。但是到现在为止,Unipre变得更大了,并且必须使用UTF-16编码字符串-a,单个Unipre字符在Java中可能使用
两个

char
s
String

查看Apache实现的实际源代码,例如:http
//www.docjar.com/html/api/java/lang/String.java.html


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486574.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号