(三)String、StringBuilder、StringBuffer在字符串操作中的性能差异浅析
参考资料:https://www.iteye.com/blog/hank4ever-581463
《Core Java Volume I-Fundamentals》原书第十版
《Java编程思想》原书第四版
一、初识String
Java字符串是由char值的序列组成,而char数据类型是一个采用UTF-16编码(一个char数据类型的数据大小为16bit)表示Unicode码点的代码单元。大多数常用Unicode字符使用一个代码单元(两个字节)就可以表示,而一些辅助字符用两个代码单元(四个字节)表示。
注:在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN10,它的默认编码方式为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。
可以使用使用-encoding参数指明JAVA编译时的编码方式:javac -encoding UTF-8 XX.java,如果使用IDEA等开发工具也可以直接设置IDEA开发的JAVA文件其默认编码方式。
代码示例:
1 public static String getByteHexadecimal(byte [] btArr){ 2 char [] Hexadecimal = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 3 StringBuilder builder=new StringBuilder(); 4 for(int i=0;i<btArr.length;i++){ 5 builder.append(Hexadecimal[btArr[i]>>4 & 0XF]); 6 builder.append(Hexadecimal[btArr[i] & 0XF]); 7 } 8 return builder.toString(); 9 } 10 public static void main(String[] args) { 11 String s1="a"; 12 String s2="字"; 13 String s3="