java - 为什么String通过getByte()转化成byte数组长度和自己预想的不一致?
PHP中文网
PHP中文网 2017-04-18 10:02:51
[Java讨论组]

如题,String类型内部是char数组构成的,一个char占2个字节,也就是byte[2],但是,字符串转化成byte数字其实只有对应字符转化成数组的一半,这是为什么?

public static void main(String[] args) {
        String str = "a";
        System.out.println(str.getBytes().length);
    }

打印的是1,不是应该是2吗?

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
迷茫

char 占用2个字节是指在jvm中的内存使用。
并不是指字符的实际存储的二进制大小,不同的字符根据编码的不同所占字节数也不完全相同。UTF-8编码

字符集和字符编码(Charset & Encoding)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号