Java第八周学习总结:常用实用类深度学习

Java第八周学习总结:常用实用类深度学习

一、本周学习前言

本周是 Java 基础学习的第八周,我结束了面向对象核心语法的学习,正式进入Java 常用实用类的实操学习阶段。常用工具类是 Java 开发中使用率最高的基础 API,也是后续集合、IO、项目开发的基础。本周重点掌握字符串系列类、系统日期时间类的用法,通过大量代码实操,解决了字符串处理、时间格式化等日常开发高频需求,同时梳理了开发中常见的易错点,夯实了 Java 基础语法应用能力。

二、核心知识点学习

(一)String 字符串类

String 是 Java 中最常用的 final 类,被 final 修饰意味着不可被继承、字符串内容一旦创建就无法修改,所有字符串的拼接、替换操作,本质都是创建新的字符串对象。

1. 字符串创建方式

主要分为两种创建方式,两种方式的内存存储逻辑完全不同:

  1. 直接赋值:String str = "Java";,字符串存入常量池,重复创建相同字符串会复用常量池对象,节省内存。
  2. new 对象创建:String str = new String("Java");,会在堆内存创建新对象,即使内容相同,地址值也不同。

2. 常用核心方法

本周重点掌握了字符串的遍历、判断、截取、替换等高频方法,也是刷题和开发的常用方法:

  • length():获取字符串长度
  • charAt(int index):根据索引获取单个字符
  • equals():对比字符串内容是否一致(必须重写,区别于==地址对比)
  • substring():截取字符串,支持单参数、双参数重载
  • replace():替换指定字符 / 字符串
  • split():按照指定规则分割字符串,返回字符串数组

3. 核心易错点

==和equals()的区别是本周最大的知识点难点:==比较基本类型值、引用类型内存地址;equals()专门用于字符串内容对比,开发中判断字符串是否相等,必须使用equals()。

(二)StringBuilder 可变字符串类

由于 String 字符串不可变,频繁拼接字符串会不断创建新对象,造成内存浪费、程序效率低下。因此 Java 提供了可变字符串类 StringBuilder,专门用于字符串频繁拼接、修改场景。

1. 核心特性

  • 底层是可变字符数组,内容可直接修改,不会创建新对象
  • 线程不安全,效率高,适合单线程开发场景

2. 常用方法

  • append():拼接字符串、数字、字符等任意类型数据(最常用)
  • reverse():字符串反转
  • delete():删除指定区间字符
  • toString():将 StringBuilder 转为不可变的 String 类型

3. 实操代码示例

java
public class StringBuilderDemo {
public static void main(String[] args) {
// 创建可变字符串对象
StringBuilder sb = new StringBuilder();
// 拼接内容
sb.append("Java第八周学习");
sb.append("常用工具类");
// 字符串反转
sb.reverse();
// 转为String输出
String result = sb.toString();
System.out.println(result);
}
}

(三)日期时间工具类

本周学习了 Java 基础的日期处理类,用于获取系统当前时间、格式化时间,解决了程序时间记录、日志时间标注等需求。

1. Date 类

用于表示系统当前时间,精确到毫秒。默认输出格式为国外时间格式,可读性差,一般不直接打印,需配合格式化工具使用。

2. SimpleDateFormat 时间格式化类

核心作用:自定义时间格式,将 Date 对象转为我们熟悉的年月日时分秒格式。
常用格式规则:

  • yyyy:4 位年份
  • MM:月份
  • dd:日期
  • HH:24 小时制小时
  • mm:分钟
  • ss:秒

3. 时间格式化实操代码

java
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {
public static void main(String[] args) {
// 获取当前系统时间
Date date = new Date();
// 定义时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化时间
String nowTime = sdf.format(date);
System.out.println("当前系统时间:" + nowTime);
}
}

三、本周实操练习与问题总结

1. 完成实操案例

  1. 字符串工具练习:实现手机号脱敏、邮箱格式简单校验、字符串分割统计;
  2. 高效拼接练习:使用 StringBuilder 循环拼接 1000 次字符串,对比 String 拼接的运行效率;
  3. 时间工具练习:获取系统当前时间、自定义格式化时间、计算程序运行耗时。

2. 遇到的问题及解决方案

  • 问题一:字符串判断相等结果错误
    原因:误用==对比字符串内容,只对比了内存地址。
    解决:所有字符串内容判断统一使用equals()方法。
  • 问题二:StringBuilder 拼接后无法使用 String 方法
    原因:两者是不同的类,方法不通用。
    解决:修改完成后通过toString()转为 String 类型再操作。
  • 问题三:时间格式化报错
    原因:格式符号书写错误,混淆分钟 mm 和月份 MM。
    解决:牢记格式规则,严格区分大小写格式符。

四、本周学习收获与反思

1. 学习收获

本周掌握了 Java 开发中最基础、最高频的工具类,彻底解决了字符串处理、时间处理的基础难题。明白了不可变字符串(String)和可变字符串(StringBuilder)的适用场景:少量字符串操作用 String,频繁拼接、修改用 StringBuilder,大幅优化代码性能。同时熟练掌握了时间格式化的开发技巧,为后续日志开发、项目时间处理打下基础。

2. 不足之处

  1. 对工具类底层原理了解较浅,仅会调用方法,不清楚底层数组、常量池的详细运行机制;
  2. 复杂字符串正则分割、高级时间处理功能掌握不足,只能完成基础需求;
  3. 代码规范性有待提升,部分练习代码没有封装方法,冗余代码较多。

五、下周学习计划

  1. 深入学习 Java 常用工具类,掌握 StringBuffer、Math、Arrays 工具类用法;
  2. 预习第九章集合框架基础,为后续数组进阶、集合存储学习做铺垫;
  3. 针对性刷题,强化字符串处理题型,熟练运用工具类简化代码;
  4. 优化代码习惯,将常用功能封装为方法,提升代码复用性。

六、总结

第八周的学习让我跳出了单纯的语法学习,真正接触到了实用性开发 API。常用工具类没有复杂的逻辑,但贵在熟练和规范使用。通过本周的练习,我不仅掌握了核心方法,更养成了 “根据场景选择合适类” 的编程思维,不再盲目编写代码。后续我会继续夯实基础,多实操、多复盘,熟练掌握各类工具类的底层逻辑和使用场景。

posted @ 2026-05-31 20:14  张一威  阅读(14)  评论(0)    收藏  举报