Java 学习笔记:常用类、String 与日期时间处理

发布于:2025-08-02 ⋅ 阅读:(12) ⋅ 点赞:(0)

作为一名名 Java 初学者,最近在学习过程中整理了一些关于常用类、String 类以及日期时间处理的知识点。这些内容是 Java 基础中的重点,也是日常编程练习中频繁用到的工具,掌握它们能让我们在写代码时更加得心应手。今天把这些笔记分享出来,希望能和大家一起交流进步。

一、Java 中的常用基础类

Java 提供了许多内置的基础类,它们就像工具箱里的工具,帮我们解决各种常见问题。

Object 类 —— 所有类的 "老祖宗"

Object 类是 Java 中所有类的直接或间接父类,不管我们有没有显式声明,所有类都继承了它的方法。其中最常用的有两个:

  • equals():用于比较两个对象是否相等。需要注意的是,默认的equals()比较的是对象的内存地址,很多类(比如后面要讲的 String)会重写这个方法,改为比较内容是否相同。
  • toString():返回对象的字符串表示。默认格式是 "类名 @哈希值",通常我们会在自定义类中重写它,让输出的信息更有意义。比如:
    class Student {
        String name;
        int age;
        
        @Override
        public String toString() {
            return "Student{name='" + name + "', age=" + age + "}";
        }
    }

    包装类 —— 基本类型的 "包装器"

    Java 的基本数据类型(如 int、double)不是对象,为了能在需要对象的场景(比如集合框架)中使用它们,Java 提供了对应的包装类:

     
    基本类型 包装类
    int Integer
    char Character
    double Double
    boolean Boolean
     

    包装类最常用的功能是类型转换:

// 字符串转整数
int num = Integer.parseInt("123");
// 整数转字符串
String str = Integer.toString(123);
// 自动装箱拆箱(Java 5+)
Integer a = 100;  // 自动装箱(int→Integer)
int b = a;        // 自动拆箱(Integer→int)

二、String 类 —— 字符串处理利器

String 类用于处理文本数据,是 Java 中最常用的类之一,掌握它的用法能让字符串处理变得简单高效。

String 的重要特性

  • 不可变性:字符串一旦创建,其内容就不能被修改。当我们执行拼接、替换等操作时,其实是创建了新的 String 对象。

    String s = "hello";
    s += " world";  // 这里创建了新的String对象,原"hello"并未改变

    字符串常量池:为了节省内存,Java 会把字符串常量存放在常量池中。如果创建的字符串已经存在于常量池,就直接引用而不重复创建。

    String s1 = "hello";
    String s2 = "hello";
    System.out.println(s1 == s2);  // 输出true,因为指向同一个常量池对象

    必学的 String 常用方法

  • length():获取字符串长度

    "hello".length();  // 返回5

substring(int start, int end):截取子串(包含 start,不包含 end)

"hello world".substring(0, 5);  // 返回"hello"

 

equals(Object obj):比较字符串内容是否相等(注意与==的区别)

"hello".equals("hello");  // 返回true
"hello" == "hello";       // 返回true(常量池机制)
new String("hello") == "hello";  // 返回false(new创建了新对象)

indexOf(String str):查找子串首次出现的位置,找不到返回 - 1 

"hello world".indexOf("world");  // 返回6

replace(CharSequence old, CharSequence new):替换字符串中的字符 / 子串 

"hello".replace('l', 'x');  // 返回"hexxo"

 

三、日期时间处理 —— 时间的 "记录者"

在编程中,处理日期时间是很常见的需求,比如记录日志时间、计算时间差等。Java 提供了两套日期时间 API,我们都需要了解。

旧版 API(Date 和 Calendar)

这是 Java 早期的日期时间类,虽然部分方法已过时,但在老项目中仍能看到它们的身影:

  • Date 类:表示特定的时间点

Date now = new Date();
System.out.println(now);  // 输出当前时间,格式如:Fri Aug 01 16:30:45 CST 2025

Calendar 类:用于更灵活地操作日期时间 

Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);  // 获取当前年份
int month = cal.get(Calendar.MONTH) + 1;  // 月份从0开始,需加1
int day = cal.get(Calendar.DAY_OF_MONTH);  // 获取日期

新版 API(Java 8+)

Java 8 引入了全新的日期时间 API(位于java.time包下),解决了旧版 API 线程不安全、设计混乱等问题,推荐优先使用:

  • LocalDate:只包含日期(年、月、日)

LocalDate today = LocalDate.now();
int year = today.getYear();  // 获取年份
Month month = today.getMonth();  // 获取月份(Month枚举类型)
int day = today.getDayOfMonth();  // 获取日期

 LocalTime:只包含时间(时、分、秒)

LocalTime now = LocalTime.now();
int hour = now.getHour();    // 小时
int minute = now.getMinute();  // 分钟

LocalDateTime:包含日期和时间(最常用)

LocalDateTime now = LocalDateTime.now();  // 获取当前日期时间

日期时间格式化:使用DateTimeFormatter 

LocalDateTime now = LocalDateTime.now();
// 定义格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化
String formatted = now.format(formatter);
System.out.println(formatted);  // 输出如:2025-08-01 16:45:30

日期计算:轻松实现加减操作 

LocalDate tomorrow = LocalDate.now().plusDays(1);  // 明天
LocalDate lastMonth = LocalDate.now().minusMonths(1);  // 上个月

总结

以上就是我整理的关于 Java 常用类、String 类和日期时间处理的核心知识点。这些内容虽然基础,但在实际编程中应用广泛,尤其是 String 类和新版日期时间 API,建议多写代码练习巩固。

作为一名学生,我深知学习编程需要不断实践和总结。如果笔记中有错误或不完善的地方,欢迎大家在评论区指正交流,让我们一起在 Java 学习的道路上共同进步!