Java学习笔记
问题目录
①借助JDK,选取几个String与StringBuffer、StringBuilder的常用API,并编写实例测试API的功能。
②请简述String,StringBuffer,StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?
③为什么不建议在for循环中使用“+”进行字符串拼接?
④什么是字符串的编码与解码?请举例说明。
一、借助JDK,选取几个String与StringBuffer、StringBuilder的常用API,并编写实例测试API的功能。
public class StringCompare {
public static void main(String[] args) {
String a = "Serve the people ";
String b = new String("Never be tired ");
System.out.println(a.compareTo(b));
System.out.println(a.concat(b));
System.out.println(a.endsWith(new String("people ")));
System.out.println(a.endsWith(new String("string")));
System.out.println(a.lastIndexOf("p"));
StringBuffer sba = new StringBuffer(a);
System.out.println(sba.append(b));
System.out.println(sba.append(666));
System.out.println(sba.insert(6,"greatly "));
StringBuilder sbd = new StringBuilder(a);
System.out.println(sbd.append(b));
System.out.println(sbd.reverse()+"\n"+sbd.reverse());
sbd.setCharAt(sbd.length()-1,'!');
System.out.println(sbd);
}
}
二、请简述String,StringBuffer,StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?
String,StringBuffer,StringBuilder都是用于表示字符序列的类
(1)三者在执行速度方面的比较:StringBuilder > StringBuffer > String
(2)String:字符串常量
StringBuffer:字符创变量,StringBuilder:字符创变量
(3)StringBuilder与 StringBuffer,
StringBuilder:线程非安全的,StringBuffer:线程安全的
如果要操作少量的数据用String;单线程操作字符串缓冲区;下操作大量数据用StringBuilder;多线程操作字符串缓冲区 下操作大量数据 用StringBuffer
三、为什么不建议在for循环中使用“+”进行字符串拼接? 因为在for循环里直接使用“+”拼接字符串效率较低,应使用 StringBuilder 的 append 方法进行扩展
四、什么是字符串的编码与解码?请举例说明。
计算机自己能理解的“语言”是二进制数,最小的信息标识是二进制数,8个二进制位表示一个字节;而我们人类所能理解的语言文字则是一套由英文字母、汉语汉字、标点符号字符、阿拉伯数字等等很多的字符构成的字符集。如果要让计算机来按照人类的意愿进行工作,则必须把人类所使用的这些字符集转换为计算机所能理解的二进制码,这个过程就是编码,他的逆过程称为解码。
Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
----------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
本文地址:https://blog.csdn.net/m0_46860120/article/details/109585176