详解Java语言中一个字符占几个字节?
题主要区分清楚内码和外码就好了。内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编码;Java语言规范规定,Java的char类型是UTF-16的code unit,也就是一定是16位(2字节);Java的Class文件中的字符串常量与符号名字也都规定用UTF-8编码。这大概是当时设计者为了平衡运行时的时间效率与外部存储的空间效率而做的取舍。具体地讲,脱离具体的编码谈某个字符占几个字节是没有意义的。同一个字符在不同的编码下可能占不同的字节。你可以在启动 JVM 时设置一个缺省编码,由于受启动参数及所在操作系统环境的影响,不带参数的 getBytes 方法通常是不建议使用的,最好是显式地指定参数以此获得稳定的预期行为。
下载地址
用户评论