第6章 Java常用类

6.1 包装类(Wrapper Classes)

  • 定义:包装类是基本数据类型的对象表示形式,它们允许我们把基本类型当作对象来使用。

  • 用途:提供静态方法进行基本类型和字符串之间的转换。
  • 自动装箱与拆箱:

  • (1)自动装箱:将基本类型自动转换为对应的包装类对象。
  • (2)拆箱:将包装类对象自动转换回基本类型。
  • 1
    2
    Integer num = 42; // 自动装箱
    int value = num; // 自动拆箱

    6.2 String 类概述

    不可变性:String对象一旦创建就不能被修改,任何改变都会生成新的String对象。

  • 字符串拼接:使用+运算符或StringBuilder类进行高效拼接。

  • 1
    2
    3
    String greeting = "Hello";
    String name = "Alice";
    String message = greeting + ", " + name + "!"; // 字符串拼接

    6.3 StringBuffer 类与 StringBuilder 类

  • 共同点:都是可以修改内容的字符串类,与String不同,它们的内容可以更改而不必创建新对象。
  • 区别:StringBuffer是线程安全的,所有方法都是同步的;而StringBuilder不是线程安全的,因此性能更好。
  • 常用方法:
  • (1)append(String str):追加字符串。
  • (2)insert(int offset, String str):在指定位置插入字符串。
  • (3)delete(int start, int end):删除指定范围内的字符。
  • (4)reverse():反转字符串内容。
  • 如果不需要多线程支持,推荐使用StringBuilder以获得更好的性能。
  • 1
    2
    3
    StringBuilder builder = new StringBuilder("Hello");
    builder.append(", World!");
    System.out.println(builder.toString()); // 输出: Hello, World!

    6.4 时间和日期相关类

    • DateCalendar 类(遗留API):

      • 这些类已经被新的java.time包中的类取代,但在旧代码中仍然常见。
    • java.time 包(现代API):

      • Java 8引入了全新的时间日期API,位于java.time包下,提供了更直观和易用的类。
    • 常用类:

      • LocalDate:表示不带时区的日期。
      • LocalTime:表示不带日期的时间。
      • LocalDateTime:结合了日期和时间,但不包含时区信息。
      • ZonedDateTime:包含时区信息的完整日期时间表示。
      • Duration:用于计算两个时间点之间的时间差。
      • Period:用于计算两个日期之间的天数、月数或年数。
    • 格式化与解析:

      • 使用DateTimeFormatter类来格式化和解析日期时间字符串。

      

    • 常用类:

      • LocalDate:表示不带时区的日期。
      • LocalTime:表示不带日期的时间。
      • LocalDateTime:结合了日期和时间,但不包含时区信息。
      • ZonedDateTime:包含时区信息的完整日期时间表示。
      • Duration:用于计算两个时间点之间的时间差。
      • Period:用于计算两个日期之间的天数、月数或年数。
    • 格式化与解析:

      • 使用DateTimeFormatter类来格式化和解析日期时间字符串。
    • 示例:

      Java
      深色版本
      LocalDate today = LocalDate.now();
      LocalDateTime now = LocalDateTime.now();
      ZonedDateTime zonedNow = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"));
      Duration duration = Duration.between(LocalTime.of(8, 30), LocalTime.of(9, 45));

    6.5 其他常用类

    • Math 类:

      • 提供了数学运算相关的静态方法,如abs()max()min()sqrt()等。
    • Random 类:

      • 用于生成伪随机数,提供nextInt()nextDouble()等方法。
    • Scanner 类:

      • 从控制台或其他输入源读取用户输入,常用于简单的命令行程序。
    • ArrayList 类:

      • 动态数组实现,允许在运行时调整大小,替代传统的固定大小数组。
    • HashMap 类:

      • 实现键值对映射的数据结构,提供了快速查找、插入和删除操作。
    • File 类:

      • 表示文件或目录路径名的抽象表示,提供了文件操作的相关方法。
    • System 类:

      • 提供了一些系统级的操作,如获取当前时间戳(currentTimeMillis())、标准输入输出流等。
    • Thread 类和Runnable接口:

      • 用于创建和管理线程,实现多线程编程。
      • 学习心得

        StringBufferStringBuilder提供了高效的字符串操作能力,尤其适合需要频繁修改字符串的场景

      • 遇到的难点及解决方法
        • 难点:理解各个类的具体应用场景
        • 解决方法:针对每个类编写具体的练习代码,探索其特性和限制。参考官方文档和其他开发者的经验分享,了解如何在实际项目中有效使用这些类。通过不断实践和优化代码,逐渐积累经验,找到最适合自己的解决方案。
posted @   乘风破浪的小落夜  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示