当前位置: 首页 > news >正文

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. 实战场景

处理超大整数的四则运算、因数判断等数学问题,适合算法题或需要高精度计算的场景。

http://www.jsqmd.com/news/918544/

相关文章:

  • 终极指南:如何用猫抓Cat-Catch轻松下载网页视频和流媒体资源
  • 2026年5月大模型选型指南:15+主流模型全维度对比(含最新Gemini 3.5 Qwen3.7)
  • MapLibre GL JS第33课:渲染世界副本
  • 保姆级教程:Win10/Win11系统下SolidWorks 2021 SP5完整安装与破解(含.NET环境检查与防火墙设置)
  • Selenium IDE导出的Python脚本跑不起来?手把手教你配置Edge驱动和Pycharm环境(避坑指南)
  • Python 进阶:函数名、闭包与迭代器
  • 告别虚拟机!在老旧Dell/HP服务器上实战安装CentOS 7.9全记录
  • 三步掌握CoreCycler:CPU单核心稳定性测试终极指南
  • 重庆本润装饰真实业主评价合集,口碑见证 - 大渝测评
  • 069、NeRF/Gaussian Splatting 训练太慢?数据预处理、加速采样与低分辨率预热方案
  • MapLibre GL JS第34课:使用addProtocol转换要素属性
  • Qoder使用二:内置智能体
  • 智谱AI完成5亿美元融资 + AutoGLM 2.0发布:对标GPT-5 Agent Mode
  • GTA5 村长团队Blender Sollumz 人物制作+权重绘制全流程超详细教程
  • Selenium自动化测试:除了放Scripts目录,ChromeDriver还有这3种灵活配置方法
  • 3PEAK思瑞浦 TP2191-TR SOT23-5 运算放大器
  • Hyperf 利用 PHP 的 反射机制的庖丁解牛
  • spi_master
  • 第八届高分子化学国际研讨会 (ICPC 2026)
  • Python类型推导协议
  • DeepSeek V1
  • [智能体-128]:智能体,模型与工具的整合者
  • OpenAI GPT-5 Agent Mode 正式发布:最长24小时自主任务,AI编程智能体大战升级
  • 城通网盘解析器:3分钟掌握免费高速下载的终极方案
  • TrafficMonitor插件完全指南:打造你的个性化桌面监控中心
  • OpencvSharp 算子学习教案之 - Cv2.CvtColor
  • MATLAB图论实战:除了shortestpath,自己写的Dijkstra函数如何优化与可视化?
  • 基于知识图谱与专家系统的散热材料智能推荐技术
  • 3PEAK思瑞浦 TP5551-TR SOT23-5 精密运放
  • OmenSuperHub:彻底释放惠普暗影精灵游戏本性能的终极解决方案