java复习笔记(3)
一、String 字符串核心知识点
String 是Java中最常用的引用类型之一,也是笔试高频考点。
1. 基础特性
- 不可变性:String 对象创建后内容无法修改,所有“修改”操作(拼接、替换)本质上是创建新对象。
- 常量池复用:直接用双引号创建的字符串会存入常量池,减少内存开销。
- 比较方式: == 比较内存地址, equals() 比较内容;空字符串 "" (有效对象,长度为0)与 null (无引用对象,调用方法会报错)有本质区别。
2. 常用API汇总
方法 核心作用
length() 获取字符串长度
charAt(int index) 获取指定索引的字符
contains(String s) 判断是否包含指定内容
indexOf(String s) 查找内容第一次出现的索引(找不到返回-1)
lastIndexOf(String s) 查找内容最后一次出现的索引
substring(int begin, int end) 截取字符串(左闭右开区间)
startsWith()/endsWith() 判断字符串是否以指定内容开头/结尾
split(String regex) 按规则分割字符串,返回数组
replaceAll(String regex, String replacement) 支持正则的批量替换
toUpperCase()/toLowerCase() 大小写转换
trim() 去除首尾空白字符
3. 实战场景
典型应用:从结构化文本中提取数据(如书籍信息中的价格、页码)。通过 indexOf 定位关键词位置,再用 substring 截取目标内容,最后转换为数值类型进行判断与计算。
二、正则表达式与文本处理
正则表达式是处理复杂文本的利器,Java中通过 Pattern 和 Matcher 实现匹配与替换。
1. 核心使用流程
1. 定义正则规则(如IP地址、手机号匹配)
2. 用 Pattern.compile() 编译正则表达式,生成模式对象
3. 创建 Matcher 匹配器,关联目标字符串
4. 通过 find() 查找匹配内容, group() 获取结果, replaceAll() 批量替换
2. 文本分割进阶
- split() :按正则分割字符串,适合简单场景
- StringTokenizer :可指定分隔符,处理结构化文本(如商品信息中提取所有价格并求和)
三、日期时间处理( java.time 包)
Java 8+ 提供的新日期API,解决了旧版 Date / Calendar 的诸多问题。
1. 核心类与常用操作
- LocalDate :表示本地日期(年-月-日),不可变对象
- 日期解析:通过 split() 分割输入字符串,解析为年、月、日后用 LocalDate.of() 创建对象
- 日期比较与计算:- isAfter() / isBefore() :判断日期先后
- ChronoUnit.DAYS.between() :计算两个日期的天数差
- Math.abs() :保证日期差结果为正,避免正负号影响
四、大数运算: BigInteger
当整数超出 long 类型范围时,使用 BigInteger 处理超大整数运算。
1. 基础特性
- 必须通过字符串构造对象,避免数值溢出
- 提供专用运算方法,不依赖基本数据类型运算符
2. 常用运算方法
方法 运算功能
add(BigInteger val) 加法
subtract(BigInteger val) 减法
multiply(BigInteger val) 乘法
divide(BigInteger val) 除法
remainder(BigInteger val) 取余
compareTo(BigInteger val) 比较大小(返回-1/0/1)
3. 实战场景
处理超大整数的四则运算、因数判断等数学问题,适合算法题或需要高精度计算的场景。
