首先纠正一个错,'a'所对应的的97,是'a'在unicode码表中对应的编码值,而不是字节码,字节码在java中有特殊的含义--》.class文件,你可以叫做字节编码,但不能叫字节码。
其次,那么你想,人家设置两个方法肯定是有道理的,肯定是针对不同的需求上来做的。
从返回值类型上就可以看出一点端倪吧,getBytes()---》返回值字节数组,字节,这玩意儿,我们在计算机内存中直接操作的的二进制吧,一个字节就是8个二进制位吧,离底层进吧,效率高吧;tocharArray(),返回值是char数组,每个元素是一个char,两个字节吧,解析相对byte复杂吧,而tocharArray()更多的用来对str进行一系列遍历等等的操作。
再者,如果str是一个中文呢,比如“帅哥好衰啊”,对于这种你想获取里面的每一个'帅','哥','好','衰','啊'能用getBytes()来做吗,显然不行吧,会乱码吧,每一个汉字都是两个字节吧,只能用tocharArray()吧,原理就在这里。
其实总结之,就可以说是:看需求是什么,是操作字节方便呢,还是字符方便呢,看情况而定,当然操作字节的话会效率高一点~~~
个人理解,希望帮助到楼主。~
|