五,常用类

bjynjj / 2024-10-19 / 原文

Java常用类Object,Scanner和Random笔记

Java类概述

  • 根类:
    • java.lang.Object是Java中所有类的根类或父类。
    • 所有Java类默认继承自Object类,除非显式地继承其他类。

成员方法

  • toString():

    • 用途: 返回对象的字符串表示形式。
    • 默认行为: 默认情况下,toString()方法返回对象的类名和哈希码(内存地址值)。
    • 重写建议: 为了提供更有意义的信息,通常需要重写此方法。
  • equals():

    • 用途: 用于比较两个对象是否相等。
    • 默认行为: 默认比较的是对象的引用(内存地址值)。
    • 重写建议: 如果需要根据对象的内容来判断相等性,应该重写此方法。
  • clone():

    • 用途: 创建并返回对象的一个副本。
    • 默认行为: 默认实现是浅拷贝,即只复制对象的引用,不复制引用的对象。
    • 使用限制: 要使用clone()方法,类必须实现Cloneable接口,否则会抛出CloneNotSupportedException
  • finalize():

    • 用途: 在垃圾回收器清除对象之前,由垃圾回收器调用,以执行任何必要的清理。
    • 注意: finalize()方法不保证一定会被调用,因此不推荐使用。

Scanner类

  • 概述:

    • Scanner类位于java.util包中,用于获取用户的输入。
    • 可以解析基本类型和字符串。
  • 获取输入内容:

    • nextLine(): 读取一行输入,包括空白字符,直到遇到回车。
    • nextInt(), nextDouble(), nextFloat()等: 分别用于读取整数、双精度浮点数、单精度浮点数等。

Random类

  • 概述:

    • Random类位于java.util包中,用于生成伪随机数。
    • 可以生成各种类型的随机数,如整数、布尔值、浮点数等。
  • 生成随机数:

    • nextInt(): 生成一个随机整数。
    • nextDouble(): 生成一个[0.0, 1.0)范围内的随机双精度浮点数。
    • nextBoolean(): 生成一个随机布尔值。

示例代码

import java.util.Scanner;
import java.util.Random;

public class CommonClassesExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();

        System.out.println("Enter your name:");
        String name = scanner.nextLine();
        System.out.println("Hello, " + name);

        int randomInt = random.nextInt(100); // 生成0到99之间的随机整数
        double randomDouble = random.nextDouble(); // 生成一个随机双精度浮点数
        boolean randomBoolean = random.nextBoolean(); // 生成一个随机布尔值

        System.out.println("Random integer: " + randomInt);
        System.out.println("Random double: " + randomDouble);
        System.out.println("Random boolean: " + randomBoolean);

        scanner.close(); // 关闭scanner对象
    }
}

总结

  • Object类是Java所有类的根类,提供了基本的成员方法。
  • toString(), equals(), clone(), 和 finalize()Object类中的重要方法,它们在自定义类中通常需要被重写或特别处理。
  • Scanner类用于获取用户输入,支持多种数据类型的解析。
  • Random类用于生成随机数,适用于需要随机性的场景。

Java常用类String笔记

类定义

  • String类:
    - String是Java中用于表示文本序列的不可变类。
    - 它是Java标准库中的一个核心类,用于处理字符串数据。

构造方法

  • String():
    - 创建一个空的字符串实例。

  • String(byte[] bytes):
    - 使用指定的字节数组创建一个新的字符串。

  • String(byte[] bytes, int offset, int length):
    - 使用指定的字节数组的一部分创建一个新的字符串。

  • String(char[] value):
    - 使用字符数组创建一个新的字符串。

  • String(char[] value, int offset, int count):
    - 使用字符数组的一部分创建一个新的字符串。

  • String(String original):
    - 创建一个新的字符串,内容与原始字符串相同。

成员方法

  • equals(Object obj):
    - 比较两个字符串的内容是否相等。

  • equalsIgnoreCase(String str):
    - 比较两个字符串的内容是否相等,忽略大小写差异。

  • contains(String str):
    - 判断一个字符串是否包含另一个字符串。

  • startsWith(String str):
    - 判断一个字符串是否以另一个字符串开始。

  • endsWith(String str):
    - 判断一个字符串是否以另一个字符串结束。

  • isEmpty():
    - 判断字符串是否为空。

  • length():
    - 返回字符串的长度。

  • charAt(int index):
    - 返回字符串中指定索引位置的字符。

  • indexOf(int ch):
    - 返回指定字符在字符串中第一次出现的索引位置。

  • indexOf(String str):
    - 返回指定字符串在当前字符串中第一次出现的索引位置。

  • indexOf(String str, int fromIndex):
    - 返回指定字符串在当前字符串中从指定索引开始第一次出现的索引位置。

  • substring(int start):
    - 返回一个新的字符串,它是当前字符串的一个子字符串。

  • substring(int start, int end):
    - 返回一个新的字符串,它是当前字符串从指定开始索引到结束索引的一个子字符串。

转换方法和其他功能

  • String类提供了许多其他有用的方法,例如:
    - trim():去除字符串两端的空白字符。
    - replace(char oldChar, char newChar):替换字符串中所有出现的指定字符。
    - toLowerCase():将字符串转换为小写。
    - toUpperCase():将字符串转换为大写。
    - concat(String str):将指定字符串连接到此字符串的结尾。
    - split(String regex):根据指定的正则表达式分割字符串。

示例代码

public class StringExample {
    public static void main(String[] args) {
        String str = "Hello, World!";
        
        // 使用构造方法
        String strFromBytes = new String("Hello".getBytes());
        
        // 使用成员方法
        boolean startsWithHello = str.startsWith("Hello");
        boolean endsWithExclamation = str.endsWith("!");
        String upperStr = str.toUpperCase();
        
        // 使用转换方法
        String trimmedStr = str.trim();
        
        System.out.println("Original: " + str);
        System.out.println("Starts with 'Hello': " + startsWithHello);
        System.out.println("Ends with '!': " + endsWithExclamation);
        System.out.println("Uppercase: " + upperStr);
        System.out.println("Trimmed: " + trimmedStr);
    }
}

总结

  • String类是Java中用于处理文本数据的核心类,它提供了丰富的构造方法和成员方法。
  • 字符串在Java中是不可变的,这意味着一旦创建,其内容不能被改变。
  • String类的方法支持各种字符串操作,包括比较、查找、替换、截取和转换等。
  • 了解String类的使用对于编写有效的Java程序至关重要。

Java常用类StringBuffer笔记

StringBuffer 概述

  • 可变字符序列:
    - StringBuffer 是一个可变的字符序列,它提供了一个与 String 类似的对象,但可以修改其内容。
    - 它是线程安全的,适用于多线程环境下的字符串操作。

构造方法

  • StringBuffer():
    - 创建一个默认大小的空 StringBuffer 对象。

  • StringBuffer(int capacity):
    - 创建一个具有指定容量的空 StringBuffer 对象。

  • StringBuffer(String str):
    - 创建一个 StringBuffer 对象,并将其初始化为包含指定字符串的值。

成员方法

  • append(String str):
    - 将指定的字符串追加到此序列。

  • insert(int offset, String str):
    - 在指定位置插入字符串。

  • deleteCharAt(int index):
    - 删除指定位置的字符。

  • delete(int start, int end):
    - 删除从指定开始位置到结束位置的字符。

  • replace(int start, int end, String str):
    - 替换从指定开始位置到结束位置的字符序列。

  • reverse():
    - 将此字符序列用其反转形式取代。

截取功能

  • substring(int start):
    - 返回一个新的 StringBuffer,它包含此序列中从指定位置开始到末尾的字符。

  • substring(int start, int end):
    - 返回一个新的 StringBuffer,它包含此序列中从指定开始位置到指定结束位置的字符。

示例代码

public class StringBufferExample {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello");
         
         // 追加字符串
         sb.append(" World");
         
         // 插入字符串
         sb.insert(5, "Java ");
         
         // 删除字符
         sb.deleteCharAt(5);
         
         // 替换字符序列
         sb.replace(5, 11, "Java");
         
         // 反转字符串
         sb.reverse();
         
         // 截取字符串
         String sub = sb.substring(0, 5);
         
         System.out.println(sb); // 输出: Java
         System.out.println(sub); // 输出: Java
     }
}

总结

  • StringBuffer 是一个可变的字符序列,适用于需要频繁修改字符串内容的场景。
  • 它提供了多种构造方法来创建具有不同初始容量和内容的 StringBuffer 对象。
  • StringBuffer 类包含一系列方法来追加、插入、删除、替换和反转字符串序列。
  • 由于 StringBuffer 是线程安全的,它特别适合在多线程环境中使用。

数组和Java包装类笔记

类定义

  • 包装类:
    - Java提供了包装类(Wrapper classes)来将基本数据类型封装为对象。
    - 这些类位于java.lang包中,每个基本数据类型都有一个对应的包装类。

种类

  • byte:
    - Byte类包装了基本类型byte

  • short:
    - Short类包装了基本类型short

  • int:
    - Integer类包装了基本类型int

  • long:
    - Long类包装了基本类型long

  • float:
    - Float类包装了基本类型float

  • double:
    - Double类包装了基本类型double

  • boolean:
    - Boolean类包装了基本类型boolean

  • char:
    - Character类包装了基本类型char

数组

  • toString(int[] a):
    - 将数组转换为字符串表示形式。

  • sort(int[] a):
    - 对数组进行升序排序。

  • binarySearch(int[] a, int key):
    - 使用二分搜索算法查找指定值key在数组a中的索引位置。

示例代码

import java.util.Arrays;

public class WrapperAndArrayExample {
    public static void main(String[] args) {
         int[] numbers = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
         
         // 将数组转换为字符串
         String numbersStr = Arrays.toString(numbers);
         System.out.println("Array as String: " + numbersStr);
         
         // 对数组进行排序
         Arrays.sort(numbers);
         System.out.println("Sorted Array: " + Arrays.toString(numbers));
         
         // 使用二分搜索查找元素
         int searchKey = 5;
         int index = Arrays.binarySearch(numbers, searchKey);
         System.out.println("Index of " + searchKey + ": " + index);
     }
}

总结

  • Java的包装类允许基本数据类型被当作对象处理,提供了许多有用的方法和功能。
  • Arrays类提供了静态方法来操作数组,包括转换为字符串、排序和搜索。
  • toString方法将数组转换为易于阅读的字符串形式。
  • sort方法可以对数组进行排序,而binarySearch方法则可以高效地在已排序数组中查找元素。

Java Date日期类和格式化笔记 - 第五部分

System 类

  • gc():
    - 请求虚拟机进行垃圾回收。

  • exit(int status):
    - 终止当前运行的Java虚拟机,status参数表示退出状态。

  • currentTimeMillis():
    - 返回当前时间的毫秒数,从1970年1月1日00:00:00 UTC开始计算。

Date 类

  • 构造方法:
    - Date(): 创建一个Date对象,表示当前日期和时间。
    - Date(long date): 创建一个Date对象,表示自1970年1月1日00:00:00 UTC以来指定毫秒数的时间点。

  • 成员方法:
    - getTime(): 返回此Date对象表示的时间距离1970年1月1日00:00:00 UTC的毫秒数。
    - setTime(long time): 设置此Date对象表示的时间为自1970年1月1日00:00:00 UTC以来指定毫秒数的时间点。

SimpleDateFormat 类

  • 构造方法:
    - SimpleDateFormat(): 使用默认模式创建SimpleDateFormat对象。
    - SimpleDateFormat(String pattern): 使用指定的模式创建SimpleDateFormat对象。

  • 成员方法:
    - format(Date date): 将Date对象格式化为字符串。
    - parse(String source): 将字符串解析为Date对象。

  • 常见的格式:
    - yyyy-MM-dd HH:mm:ss: 标准的日期和时间格式。
    - yyyy年MM月dd日 HH时mm分ss秒: 中文格式的日期和时间。

示例代码

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

public class DateExample {
    public static void main(String[] args) {
         // 获取当前时间
          Date now = new Date();
          System.out.println("Current time: " + now);
          
          // 获取当前时间的毫秒数
          long currentTimeMillis = System.currentTimeMillis();
          System.out.println("Current time in milliseconds: " + currentTimeMillis);
          
          // 使用SimpleDateFormat格式化日期
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          String formattedDate = sdf.format(now);
          System.out.println("Formatted date: " + formattedDate);
          
          // 解析日期字符串
          try {
               String dateString = "2023-01-01 12:00:00";
               Date parsedDate = sdf.parse(dateString);
               System.out.println("Parsed date: " + parsedDate);
          } catch (Exception e) {
               e.printStackTrace();
          }
      }
}

总结

  • System类提供了与系统相关的方法,如垃圾回收、程序退出和获取当前时间。
  • Date类用于表示日期和时间,提供了获取和设置时间的方法。
  • SimpleDateFormat类用于日期和时间的格式化和解析,支持自定义日期时间格式。
  • 了解这些类和方法对于处理日期和时间数据非常重要。