作用
getBytes是Java编程语言中将一个字符串转化为一个字节数组byte的方法。String的getBytes方法是得到一个系统默认的编码格式的字节数组。
将一个String类型的字符串中包含的字符转换成byte类型并且存入一个byte数组中。在java中的所有数据底层都是字节,字节数据可以存入到byte数组。
然而,当为空参数时,getBytes()转换成byte数组时采用的编码却有所歧义,这是由于JDK版本造成的差异,以下将讲述这之间的差异。
Java18及之后版本
我们可通过查询Java API文档找到getBytes()的定义。
这里可以看出,使用的是default charset
即默认字符集,查看默认字符集
可知编码规则是UTF-8。
Java17及之前的版本
而这里对于Java17及之前的版本,通过Java API手册可以清楚的看到Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.
,即采用的是平台默认的编码集,换句话来说就是Windows简体中文系统采用的是GBK编码,那么这里的方法调用时默认转换的编码就是GBK,会随着操作系统和系统的语言而发生改变。