程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • JavaAPI速查

    • Java基础API
      • 1. Object 类
        • 1.1 常用方法
        • 1.2 使用场景
      • 2. Random 类
        • 2.1 常用方法
        • 2.2 使用场景
      • 3. Math 类
        • 3.1 常用方法
        • 3.2 使用场景
      • 4. System 类
        • 4.1 常用方法
        • 4.2 使用场景
      • 5. Scanner 类
        • 5.1 常用方法
        • 5.2 使用场景
    • String类常用API
    • StringBuilder常用API
    • Arrays数组 工具类
    • Collections 工具类
    • Java 集合常用API
    • Collection 接口集合的遍历方式
    • Map 接口集合的遍历方式
    • Queue 和 Stack 的常用遍历方式
    • 数组的常用遍历方式
    • 字符串的常用遍历方式
    • 文件或目录的常用遍历方式
    • 比较器的常用使用方式
    • 常用日期和时间API
  • JavaAPI速查
  • JavaAPI速查
scholar
2024-08-24
目录

Java基础API

# Java 基础 API

# 1. Object 类

Object 类是 Java 中所有类的祖先类,所有 Java 类都直接或间接继承自 Object。因此,Object 类的方法适用于所有类。

# 1.1 常用方法

方法 描述 参数说明 返回值说明
boolean equals(Object obj) 判断两个对象是否相等,通常需要重写以进行内容比较 obj:要比较的对象 true 表示相等,false 表示不等
int hashCode() 生成对象的哈希码,通常需要与 equals 方法一致性重写 无 返回对象的哈希码
String toString() 返回对象的字符串描述,常用于调试和日志记录 无 返回对象的字符串表示
final native Class<?> getClass() 返回对象的类类型,用于反射操作 无 返回对象的 Class 对象
native Object clone() 创建对象的浅拷贝,需实现 Cloneable 接口 无 返回对象的副本
final void notify() 唤醒在此对象监视器上等待的一个线程 无 无返回值
final void notifyAll() 唤醒在此对象监视器上等待的所有线程 无 无返回值
final void wait(long timeout) 使线程在对象监视器上等待指定时间 timeout:等待时间(毫秒) 无返回值
void finalize() 对象被垃圾回收前调用,通常用于资源释放 无 无返回值

# 1.2 使用场景

  • equals(Object obj):用于对象内容比较。通常重写此方法以根据对象的内容而不是引用进行比较。例如,两个自定义类实例的内容相同时,可以通过重写 equals 方法来判断它们相等。
  • hashCode():与 equals 方法一起重写,主要用于集合类中,如 HashMap 和 HashSet。
  • toString():用于返回对象的字符串描述,通常重写此方法以输出对象的关键信息,便于调试和日志记录。
  • getClass():用于获取对象的类类型,在反射操作中非常常见。
  • clone():创建对象的副本,但要求类实现 Cloneable 接口,通常推荐使用拷贝构造函数替代 clone。
public class ObjectMethodsDemo {
    public static void main(String[] args) {
        // 示例:重写 equals 方法进行内容比较
        Student s1 = new Student("Alice", 20);
        Student s2 = new Student("Alice", 20);
        System.out.println("两个学生是否相等: " + s1.equals(s2)); // 输出 true,因为内容相同

        // 示例:使用 toString 方法获取对象的字符串描述
        System.out.println(s1); // 如果未重写 toString,默认输出对象地址

        // 示例:使用 getClass 获取对象类型
        System.out.println("对象类型: " + s1.getClass().getName()); // 输出 Student 类的全限定名
    }
}

class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 重写 equals 方法,进行基于内容的比较
    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true;
        if (obj == null || getClass() != obj.getClass()) return false;
        Student student = (Student) obj;
        return age == student.age && name.equals(student.name);
    }

    // 重写 toString 方法,返回对象的详细信息
    @Override
    public String toString() {
        return "Student{name='" + name + "', age=" + age + "}";
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

场景说明:例如,在项目中,经常需要比较对象的内容是否相同,或者在调试时查看对象的详细信息。通过重写 equals 和 toString 方法,可以大大提高代码的可读性和调试效率。

# 2. Random 类

Random 类用于生成伪随机数,常用于游戏开发、数据加密、抽奖模拟等场景。

# 2.1 常用方法

方法 描述 参数说明 返回值说明
int nextInt(int bound) 生成 0 到 bound-1 之间的随机整数 bound:随机数的上限(不含) 返回随机整数
double nextDouble() 生成一个 0.0 到 1.0 之间的随机小数 无 返回随机小数
boolean nextBoolean() 生成一个随机布尔值 无 返回 true 或 false
long nextLong() 生成一个随机长整数 无 返回随机长整数
float nextFloat() 生成一个 0.0 到 1.0 之间的随机浮点数 无 返回随机浮点数

# 2.2 使用场景

  • nextInt(int bound):生成指定范围内的随机整数,适用于生成游戏中的随机位置、抽奖系统的中奖号码等场景。
  • nextDouble() 和 nextFloat():用于生成概率值或模拟浮动范围的数据,如概率事件、股票涨跌模拟等。
  • nextBoolean():可用于模拟随机选择,如抛硬币、随机决定某事件是否发生。
import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        // 创建 Random 对象
        Random random = new Random();

        // 生成 0 到 9 之间的随机整数
        int randomInt = random.nextInt(10);
        System.out.println("随机整数:" + randomInt);

        // 生成 0.0 到 1.0 之间的随机小数
        double randomDouble = random.nextDouble();
        System.out.println("随机小数:" + randomDouble);

        // 生成一个随机布尔值
        boolean randomBoolean = random.nextBoolean();
        System.out.println("随机布尔值:" + randomBoolean);

        // 生成一个随机长整数
        long randomLong = random.nextLong();
        System.out.println("随机长整数:" + randomLong);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

场景说明:Random 类广泛应用于游戏开发、模拟实验和随机抽奖等场景。例如,随机生成道具位置、模拟随机事件的发生等。

# 3. Math 类

Math 类提供了一系列静态方法用于数学运算,所有方法均为静态方法,无需实例化即可使用。

# 3.1 常用方法

方法 描述 参数说明 返回值说明
public static int abs(int a) 返回参数 a 的绝对值 a:整数或浮点数 返回绝对值
public static double ceil(double a) 返回大于等于 a 的最小整数(向上取整) a:浮点数 返回取整后的值(类型为 double)
public static double floor(double a) 返回小于等于 a 的最大整数(向下取整) a:浮点数 返回取整后的值(类型为 double)
public static double pow(double a, double b) 计算 a 的 b 次幂 a:底数,b:指数 返回结果(类型为 double)
public static long round(double a) 返回最接近 a 的整数(四舍五入) a:浮点数 返回取整后的结果(类型为 long)
public static double random() 返回 [0.0, 1.0) 之间的随机数 无 返回值为 double 的随机数

# 3.2 使用场景

  • abs(int a):计算绝对值,常见于金融计算和科学计算,例如处理损失值或偏差值。

  • ceil(double a) 和 floor(double a):用于向上或向下取整,如在分配资源时保证整数数量。

  • pow(double a, double b):用于计算幂值,适用于科学计算、图形学和加密算法。

  • random():生成随机数,适用于概率计算、模拟实验等。

public class MathDemo {
    public static void main(String[] args) {
        // 1. 取绝对值
        System.out.println("绝对值:" + Math.abs(-10)); // 输出 10

        // 2. 向上取整
        System.out.println("向上取整:" + Math.ceil(4.3)); // 输出 5.0

        // 3. 向下取整
        System.out.println("向下取整:" + Math.floor(4.7)); // 输出 4.0

        // 4. 求指数次方
        System.out.println("2^3 = " + Math.pow(2, 3)); // 输出 8.0

        // 5. 四舍五入
        System.out.println("四舍五入:" + Math.round(4.6)); // 输出 5
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

场景说明:Math 类在金融、科学计算、数据分析等领域中非常重要。例如,在计算价格时需要对金额进行取整和四舍五入操作。

# 4. System 类

System 类提供了与系统相关的工具方法,如标准输入输出流、时间测量、数组复制等。所有方法均为静态方法。

# 4.1 常用方法

方法 描述 参数说明 返回值说明
public static void exit(int status) 终止当前正在运行的 JVM,status 表示退出状态码 status:状态码,0 表示正常退出,非 0 表示异常退出 无返回值
public static void gc() 提醒 JVM 运行垃圾回收器 无 无返回值
public static long currentTimeMillis() 返回当前时间的毫秒数,通常用于性能测量 无 返回当前时间的毫秒值
public static long nanoTime() 返回当前时间的纳秒数,适用于高精度计时 无 返回当前时间的纳秒值
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 将数组中的指定元素复制到目标数组的指定位置 src:源数组,srcPos:源数组起始位置,dest:目标数组,destPos:目标数组起始位置,length:复制的元素数量 无返回值

# 4.2 使用场景

  • currentTimeMillis() 和 nanoTime():用于性能测量、计时任务和程序调试。
  • arraycopy:用于高效地复制数组内容,适合在大数据处理中批量操作,如排序中的元素移动。
  • exit(int status):用于提前退出程序,常用于异常处理或结束批处理任务。
public class SystemDemo {
    public static void main(String[] args) {
        // 1. 获取当前时间的毫秒数,通常用于测量程序运行时间
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) { /* 模拟耗时操作 */ }
        long endTime = System.currentTimeMillis();
        System.out.println("程序运行时间:" + (endTime - startTime) + " 毫秒");

        // 2. 使用 arraycopy 方法复制数组
        int[] src = {1, 2, 3, 4, 5};
        int[] dest = new int[5];
        System.arraycopy(src, 0, dest, 0, src.length);
        System.out.println("复制后的数组:" + java.util.Arrays.toString(dest));
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

场景说明:System 类在性能测量、数组操作、系统退出等场景中非常重要,尤其是在大数据处理和定时任务中应用广泛。

# 5. Scanner 类

Scanner 类用于从各种输入源(如控制台、文件、字符串)中解析和读取数据。它在命令行工具、用户交互程序中非常实用。

# 5.1 常用方法

方法 描述 参数说明 返回值说明
int nextInt() 从输入中读取一个整数 无 返回读取到的整数
String next() 读取一个单词(以空格、Tab 或换行符作为分隔符) 无 返回读取到的单词
String nextLine() 读取整行输入 无 返回读取到的整行文本
boolean hasNext() 判断是否有下一个可读取的标记 无 如果有下一个标记返回 true,否则返回 false
boolean hasNextLine() 判断是否有下一行输入 无 如果有下一行输入返回 true,否则返回 false

# 5.2 使用场景

  • nextInt() 和 nextLine():常用于命令行程序处理用户输入、配置文件读取、CSV 数据解析等。
  • hasNext() 和 hasNextLine():用于判断输入源中是否有未读取的数据,适用于循环读取大量输入数据的场景。
import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建 Scanner 对象,用于从控制台读取数据

        // 读取整数
        System.out.print("请输入一个整数: ");
        int number = scanner.nextInt();
        System.out.println("你输入的整数是: " + number);

        // 读取字符串
        System.out.print("请输入一个单词: ");
        String word = scanner.next();
        System.out.println("你输入的单词是: " + word);

        // 读取整行输入
        scanner.nextLine(); // 处理换行符
        System.out.print("请输入一行文字: ");
        String line = scanner.nextLine();
        System.out.println("你输入的内容是: " + line);

        scanner.close(); // 关闭 Scanner 对象
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

场景说明:Scanner 类常用于处理用户输入、命令行参数解析、配置文件读取等场景,尤其在交互式应用中表现优异。

编辑此页 (opens new window)
上次更新: 2025/02/03, 00:09:13
String类常用API

String类常用API→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式