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

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

一、Java 中的常用基础类

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

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

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

  • equals():用于比较两个对象是否相等。需要注意的是,默认的equals()比较的是对象的内存地址,很多类(比如后面要讲的 String)会重写这个方法,改为比较内容是否相同。

  • toString():返回对象的字符串表示。默认格式是 "类名 @哈希值",通常我们会在自定义类中重写它,让输出的信息更有意义。比如:

    java 复制代码
    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

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

java 复制代码
// 字符串转整数
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 对象。

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

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

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

    必学的 String 常用方法

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

    java 复制代码
    "hello".length();  // 返回5

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

java 复制代码
"hello world".substring(0, 5);  // 返回"hello"

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

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

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

java 复制代码
"hello world".indexOf("world");  // 返回6

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

java 复制代码
"hello".replace('l', 'x');  // 返回"hexxo"

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

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

旧版 API(Date 和 Calendar)

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

  • Date 类:表示特定的时间点
java 复制代码
Date now = new Date();
System.out.println(now);  // 输出当前时间,格式如:Fri Aug 01 16:30:45 CST 2025

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

java 复制代码
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:只包含日期(年、月、日)
java 复制代码
LocalDate today = LocalDate.now();
int year = today.getYear();  // 获取年份
Month month = today.getMonth();  // 获取月份(Month枚举类型)
int day = today.getDayOfMonth();  // 获取日期

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

java 复制代码
LocalTime now = LocalTime.now();
int hour = now.getHour();    // 小时
int minute = now.getMinute();  // 分钟

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

java 复制代码
LocalDateTime now = LocalDateTime.now();  // 获取当前日期时间

日期时间格式化 :使用DateTimeFormatter

java 复制代码
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

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

java 复制代码
LocalDate tomorrow = LocalDate.now().plusDays(1);  // 明天
LocalDate lastMonth = LocalDate.now().minusMonths(1);  // 上个月

总结

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

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

相关推荐
℡余晖^12 分钟前
每日面试题18:基本数据类型和引用数据类型的区别
java
wb18920 分钟前
企业WEB应用服务器TOMCAT
运维·前端·笔记·tomcat·云计算
hello 早上好29 分钟前
消息顺序、消息重复问题
java·中间件
Se_ren_di_pity39 分钟前
CS231n2017-Lecture9经典CNN架构笔记
人工智能·笔记·cnn
蓝桉8021 小时前
opencv学习(视频读取)
人工智能·opencv·学习
phltxy1 小时前
ArrayList与顺序表
java·算法
Doris_LMS1 小时前
保姆级别IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
java·mysql·postgresql
今天会营业1 小时前
学习Markdown
学习
衍生星球1 小时前
JSP 程序设计之 Web 技术基础
java·开发语言·jsp
Java编程乐园1 小时前
Java函数式编程之【Stream终止操作】【下】【三】【收集操作collect()与分组分区】【下游收集器】
java