腾讯课堂中java基础-常用类 使用eclipse安装java反编译插件
以下将截图部分上课视频图片:
String、Stringbuffer、StringBuilder继承的共同的接口:
(1)String
String属于不可变字符串
String对象有两种创建方式:直接赋值字面量 / new构造器格式。两种创建方式在内存中的存储方式稍微有些不同,但字符内容实体最终都是保存在方法区(运行时常量池)中(JVM的逻辑分区);
String字符串的非空判断:不为null、不为“”。String类重写了equals方法。可以使用org.apache.commons.lang.StringUtils中的方法判断非空;
String方法在编译时有编译优化,所以String s = “AS”和String s = “A”+“S”是一样的;
StringAPI:
Apache提供的大量工具包
- Char[]数组和byte[]数组与String对象的相互转化;
- 获取字符串信息:长度、指定位置字符、指定子字符串位置。。
- 比较两个字符串:使用==和equals方法的区别、忽略大小写的比较
- 大小写转换
- 截取字符串
- 判断非空
(2)StringBuffer和StringBuilder
StringBuffer和StringBuilder都是可变的字符串,在需拼接字符串的场景使用,性能高;
StringBuffer是线程安全的,其中的方法绝大不是都加了synchronized关键字,性能稍微差一点;
StringBuilder是非线程安全的,性能更高
两个类创建的对象,默认起始容量都是16,每次扩容2*n+2;
重要的方法是append(Object),拼串使用
(3)Random和ThreadLocalRandom