背景

本文是《Java 后端从小白到大神》修仙系列第七篇,正式进入Java后端世界,本篇文章主要聊Java基础。若想详细学习请点击首篇博文,我们开始把。

文章概览

  1. 常用基础类

1. 常用基础类

1. Object

  • 作用:所有类的超类,提供基础方法(如 toString(), equals(), hashCode())。

  • 常用方法

    1
    2
    
    Object obj = new Object();
    System.out.println(obj.toString()); // 输出类名@哈希码
    

2. NumberMath

  • Number:数值包装类的抽象父类(如 Integer, Double)。

    1
    2
    
    Integer num = Integer.valueOf("100"); // 字符串转整数
    System.out.println(num.floatValue()); // 输出 100.0
    
  • Math:提供数学运算方法。

    1
    2
    3
    
    System.out.println(Math.max(10, 20));     // 输出 20
    System.out.println(Math.sqrt(25));        // 输出 5.0
    System.out.println(Math.round(3.6));      // 输出 4
    

3. String

  • 作用:不可变字符序列,适用于字符串常量。

  • 底层原理:基于 final char[] 存储数据,修改会生成新对象。

  • 常用方法

    1
    2
    3
    4
    
    String str = "Hello";
    System.out.println(str.substring(1, 3));    // 输出 "el"
    System.out.println(str.concat(" World"));   // 输出 "Hello World"
    System.out.println(str.replace("H", "h"));  // 输出 "hello"
    

4. StringBuffer

  • 作用:可变字符序列,线程安全(方法用 synchronized 修饰)。

  • 底层原理:基于 char[] 动态扩容(默认容量16,扩容公式:新容量 = 旧容量*2 + 2)。

  • 常用方法

    1
    2
    3
    4
    5
    
    StringBuffer sb = new StringBuffer("Java");
    sb.append("!");             // "Java!"
    sb.insert(4, " Core");      // "Java Core!"
    sb.reverse();               // "!eroC avaJ"
    System.out.println(sb);
    

5. StringBuilder

  • 作用:可变字符序列,非线程安全(方法不加 synchronized 修饰)。
  • 底层原理::基于char[] 动态扩容(默认容量16,扩容公式:新容量 = 旧容量*2 + 2)。
  • 常用方法
1
2
3
4
5
StringBuilder sb = new StringBuilder("Java");
sb.append("!");             // "Java!"
sb.insert(4, " Core");      // "Java Core!"
sb.reverse();               // "!eroC avaJ"
System.out.println(sb);

6. 正则表达式

  • 作用:字符串匹配、替换、分割。

  • 核心类Pattern, Matcher

  • 示例

    1
    2
    3
    4
    5
    
    Pattern pattern = Pattern.compile("\\d+"); // 匹配数字
    Matcher matcher = pattern.matcher("a1b23");
    while (matcher.find()) {
        System.out.println(matcher.group()); // 输出 1, 23
    }
    

7. 日期时间(java.time

  • 作用:处理日期、时间(线程安全,不可变)。

  • 常用类LocalDate, LocalTime, LocalDateTime

  • 示例

    1
    2
    3
    
    LocalDate date = LocalDate.now(); // 当前日期
    LocalDate nextWeek = date.plusDays(7);
    System.out.println(nextWeek);     // 输出 7天后的日期
    

8. Scanner

  • 作用:读取用户输入或文件内容。

  • 示例

    1
    2
    3
    4
    5
    
    Scanner scanner = new Scanner(System.in);
    System.out.print("输入姓名: ");
    String name = scanner.nextLine(); // 读取一行输入
    System.out.println("你好, " + name);
    scanner.close();
    

9. Character

  • 作用:包装 char 类型,提供字符操作方法。

  • 常用方法

    1
    2
    3
    
    char c = 'A';
    System.out.println(Character.isLetter(c));  // 输出 true
    System.out.println(Character.toLowerCase(c)); // 输出 'a'
    

总结

类名 核心特性 典型应用场景
String 不可变性,内存安全 字符串常量、频繁读操作
StringBuffer 可变,线程安全 多线程字符串拼接
Math 静态数学工具方法 数值计算
LocalDate 不可变日期对象 日期计算与格式化
Pattern 正则表达式预编译 字符串匹配与替换

选择建议

  • 字符串频繁修改 → StringBuffer(线程安全)或 StringBuilder(非线程安全)。
  • 日期处理 → 优先使用 java.time 包下的类。
  • 输入处理 → Scanner 简化用户交互。