java中的getBytes()问题

我们知道java中的char编码方式为unicode,来看看下面的代码

public class Try {
    public static void main(String[] args) {
        // TODO code application logic here
       String x="我";
       byte[] a=x.getBytes();
       System.out.println(a.length);
    } 
}
输出结果非常神奇,是3,我们知道String是final修饰的char数组,char的编码不是unicode吗?为什么变成3个字节了?

在我们的编译平台上,我发现该文件的编码方式是UTF-8,这就说通了,getBytes()用的是文件的编码方式。

java文件运行的过程为:

1、根据文件的编码方式,将该文件转换为以UTF-8编码的.java文件。

2、将.java文件转换成二进制文件.class文件。

3、JVM装载类后运行。

4、运行时若要输出字符,则将该字符由unicode编码转换成平台的编码。

所以,平常所说的char是unicode编码,其实是说char在JVM中是unicode编码的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值