一、可变长字符串( java.lang 包)
类名 版本 线程安全 执行效率 核心特点
String - 安全 低 不可变字符串,拼接时产生新对象
StringBuffer JDK1.0 安全 中 可变字符串,同步方法保证线程安全
StringBuilder JDK5.0 不安全 高 可变字符串,无同步开销,单线程推荐
核心方法:
StringBuilder append(String str) :字符串拼接,效率远高于 String 的 + 拼音
二、 BigDecimal 类( java.math 包)
1. 作用:解决浮点数( float / double )运算的精度丢失问题,实现精确的小数表示与计算。
2. 构造方法:
推荐使用 public BigDecimal(String n) :通过字符串传入数值,避免浮点数本身的精度问题。
3. 核心运算方法(均返回新的 BigDecimal 对象,原对象不变):
加法: add(BigDecimal val)
减法: subtract(BigDecimal val)
乘法: multiply(BigDecimal val)
除法: divide(BigDecimal val, int scale, int roundingMode)
scale :保留小数位数
roundingMode :取舍模式(如 BigDecimal.ROUND_HALF_UP 表示四舍五入)
三、 String 类核心考点
1. 创建方式:
直接赋值( String s1 = "hello" ):对象在字符串常量池生成,复用已有对象。
new 关键字( String s2 = new String("world") ):生成两个对象(堆中对象 + 常量池对象)。
2. 常用方法:
charAt(int index) :获取指定索引字符(注意下标越界异常)。
contains(String str) :判断是否包含子串。
equals(String str) :比较字符串内容(开发中必须用此方法,而非 == )。
length() :获取字符串长度(与数组 length 属性区分)。
trim() :去除首尾空格,常用于数据清洗(如解析用户输入)。
split(String str) :按指定规则拆分字符串,返回字符串数组。
3. 不可变性: String 对象一旦创建,内容无法修改,拼接/替换等操作会生成新对象,这是其效率低的根本原因。