Java SE——*API & API帮助文档

1. API概述

Java中的API可以理解为一本编程字典或者工具包,它包含了许多预定义的类、接口和方法,可以帮助我们更方便地开发Java程序

想象一下,当你要做一个饭菜的时候,你需要食谱和厨具。食谱告诉你需要哪些食材和步骤,而厨具则提供了切菜、炒菜等功能。在这个例子中,食谱就当于API,而厨具就相当于Java的API

Java的API提供了各种各样的类和方法,例如用于处理字符串、日期、文件、网络通信等等。通过使用这些类和方法,我们可以更轻松地实现我们想要的功能,而不需要从头开始编写所有的代码

当我们需要使用API时,只需要按照API提供的文档或者说明,调用相应的类和方法即可。这样,我们可以节省大量的时间和精力,同时也能够利用已经被验证过的代码,提高程序的可靠性和效率

总之,API是Java开发中非常重要的一部分,它为我们提供了许多常用功能的实现,使得我们能够更加高效地开发Java程序


2. API帮助文档

API帮助文档是对API的详细说明和使用指南。它提供了有关API中所有类、接口、方法和属性的详细描述,包括它们的功能、参数、返回值和使用示例等

API帮助文档通常由API提供者编写和维护,以便开发人员能够更好地理解和使用API。它可以作为开发人员的参考手册,帮助他们了解API的功能和用法,并在开发过程中查找需要的信息

所以API帮助文档提供的API所有类、接口、方法这些不需要去死记,它是字典,是工具

作为开发人员,会使用文档,会使用里面类的方法即可,如果忘记了就去找嘛

或者说当我们遇到问题或需要使用某个功能时,可以通过查阅API文档来找到合适的类和方法,并了解它们

的用法,这样就够了。

千万不要去死记!!!


想要获取API帮助文档可以从这个WX公众号


API中的类有很多,以下只是举例常用的

3. Math类

在API帮助文档下,Math类有以下介绍:

  • 类名为 Math
  • Math类属于 Java.lang 包下,因此在使用的时候不需要进行导包
  • Math类继承 Java.lang.Object类(顶级父类,类的祖宗)
  • 被 public 修饰,可被任何类调用
  • 被 final 修饰,不能被继承

Math 类包含执行基本数字运算的方法,我们可以使用Math类完成基本的数学运算

以下是一些常用的Math类成员的示例:


Math的常见方法:

public static int abs(int a)					// 返回参数的绝对值
public static double ceil(double a)				// 返回大于或等于参数的最小整数
public static double floor(double a)			// 返回小于或等于参数的最大整数
public static int round(float a)				// 按照四舍五入返回最接近参数的int类型的值
public static int max(int a,int b)				// 获取两个int值中的较大值
public static int min(int a,int b)				// 获取两个int值中的较小值
public static double pow (double a,double b)	// 计算a的b次幂的值
public static double random()					// 返回一个[0.0,1.0)的随机值

可以在IDEA中查看Math类的描述:

  • ctrl+N键、点击类、所有未知、输入Math、选择第1个

具体代码实现:

public class MathDemo01 {

    public static void main(String[] args) {

        // public static int abs(int a)         返回参数的绝对值
        System.out.println("-2的绝对值为:" + Math.abs(-2));
        System.out.println("2的绝对值为:" + Math.abs(2));

        // public static double ceil(double a)  返回大于或等于参数的最小整数
        System.out.println("大于或等于23.45的最小整数位:" + Math.ceil(23.45));
        System.out.println("大于或等于-23.45的最小整数位:" + Math.ceil(-23.45));

        // public static double floor(double a) 返回小于或等于参数的最大整数
        System.out.println("小于或等于23.45的最大整数位:" + Math.floor(23.45));
        System.out.println("小于或等于-23.45的最大整数位:" + Math.floor(-23.45));

        // public static int round(float a)     按照四舍五入返回最接近参数的int
        System.out.println("23.45四舍五入的结果为:" + Math.round(23.45));
        System.out.println("23.55四舍五入的结果为:" + Math.round(23.55));

        // public static int max(int a,int b)   返回两个int值中的较大值
        System.out.println("23和45的最大值为: " + Math.max(23, 45));

        // public static int min(int a,int b)   返回两个int值中的较小值
        System.out.println("12和34的最小值为: " + Math.min(12 , 34));

        // public static double pow (double a,double b)返回a的b次幂的值
        System.out.println("2的3次幂计算结果为: " + Math.pow(2,3));

        // public static double random()返回值为double的正值,[0.0,1.0)
        System.out.println("获取到的0-1之间的随机数为: " + Math.random());
    }

}

结果输出:

-2的绝对值为:2
2的绝对值为:2
大于或等于23.45的最小整数位:24.0
大于或等于-23.45的最小整数位:-23.0
小于或等于23.45的最大整数位:23.0
小于或等于-23.45的最大整数位:-24.0
23.45四舍五入的结果为:23
23.55四舍五入的结果为:24
23和45的最大值为: 45
12和34的最小值为: 12
2的3次幂计算结果为: 8.0
获取到的0-1之间的随机数为: 0.7322484131745958

4. System类

在API帮助文档下,System类有以下介绍

  • 类名为 System
  • System类属于 Java.lang 包下,因此在使用的时候不需要进行导包
  • System类继承 Java.lang.Object类(顶级父类,类的祖宗)
  • 被 public 修饰,可被任何类调用
  • 被 final 修饰,不能被继承


System包含了系统操作的一些常用的方法。比如获取当前时间所对应的毫秒值,再比如终止当前JVM等等


具体代码实现:

public static long currentTimeMillis()			
// 获取当前时间所对应的毫秒值(当前时间为0时区所对应的时间即就是英国格林尼治天文台旧址所在位置)

public static void exit(int status)				
// 终止当前正在运行的Java虚拟机,0表示正常退出,非零表示异常退出

public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); 
// 进行数值元素copy
  1. 演示currentTimeMillis方法
public class SystemDemo01 {

    public static void main(String[] args) {

        // 获取当前时间所对应的毫秒值
        long millis = System.currentTimeMillis();

        // 输出结果
        System.out.println("当前时间所对应的毫秒值为:" + millis);
    }
    
}

运行程序进行测试,控制台的输出结果如下:

当前时间所对应的毫秒值为:1576050298343

currentTimeMillis方法获取到当前时间的毫秒值的意义:我们常常来需要统计某一段代码的执行时间。此时我们就可以在执行这段代码之前获取一次时间,在执行完毕以后再次获取一次系统时间,然后计算两个时间的差值,

这个差值就是这段代码执行完毕以后所需要的时间,示例如下:

public class CodeExecutionTime {
    public static void main(String[] args) {
        // 获取开始时间
        long startTime = System.currentTimeMillis();

        // 执行需要计算执行时间的代码段
        for (int i = 0; i < 10000000; i++) {
            // 一些需要计算执行时间的操作
            int result = i * 2; // 乘法运算
    		double squareRoot = Math.sqrt(i); // 平方根计算
    		String str = "Number: " + i; // 字符串拼接
    		//System.out.println(str); // 打印输出
        }

        // 获取结束时间
        long endTime = System.currentTimeMillis();

        // 计算执行时间
        long executionTime = endTime - startTime;

        // 打印执行时间
        System.out.println("代码执行时间为:" + executionTime + "毫秒");
    }
}

结果输出:

代码执行时间为:222毫秒

  1. 演示exit方法
public class SystemDemo01 {

    public static void main(String[] args) {

        // 输出
        System.out.println("程序开始执行了.....");

        // 终止JVM
        System.exit(0);

        // 输出
        System.out.println("程序终止了..........");

    }

}

输出结果:

 程序开始执行了.....

  1. 演示arraycopy方法
// src: 	 源数组
// srcPos:  源数值的开始位置
// dest:    目标数组
// destPos: 目标数组开始位置
// length:   要复制的元素个数
public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); 

代码如下所示:

public class SystemDemo01 {

    public static void main(String[] args) {

        // 定义源数组
        int[] srcArray = {23 , 45 , 67 , 89 , 14 , 56 } ;

        // 定义目标数组
        int[] desArray = new int[10] ;

        // 进行数组元素的copy: 把srcArray数组中从0索引开始的3个元素,从desArray数组中的1索引开始复制过去
        System.arraycopy(srcArray , 0 , desArray , 1 , 3);

        // 遍历目标数组
        for(int x = 0 ; x < desArray.length ; x++) {
            if(x != desArray.length - 1) {
                System.out.print(desArray[x] + ", ");
            }else {
                System.out.println(desArray[x]);
            }

        }

    }

}

输出结果:

0, 23, 45, 67, 0, 0, 0, 0, 0, 0

5. Runtime类

在API帮助文档下,Runtime类有以下介绍

  • 类名为 Runtime
  • Runtime类属于 Java.lang 包下,因此在使用的时候不需要进行导包
  • System类继承 Java.lang.Object类(顶级父类,类的祖宗)
  • 被 public 修饰,可被任何类调用


Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息

具体代码实现:

public static Runtime getRuntime()		//当前系统的运行环境对象
public void exit(int status)			//停止虚拟机
public int availableProcessors()		//获得CPU的线程数
public long maxMemory()				    //JVM能从系统中获取总内存大小(单位byte)
public long totalMemory()				//JVM已经从系统中获取总内存大小(单位byte)
public long freeMemory()				//JVM剩余内存大小(单位byte)
public Process exec(String command) 	//运行cmd命令
public class RunTimeDemo1 {
    public static void main(String[] args) throws IOException {
        /*
            public static Runtime getRuntime() 当前系统的运行环境对象
            public void exit(int status) 停止虚拟机
            public int availableProcessors() 获得CPU的线程数
            public long maxMemory() JVM能从系统中获取总内存大小(单位byte)
            public long totalMemory() JVM已经从系统中获取总内存大小(单位byte)
            public long freeMemory() JVM剩余内存大小(单位byte)
            public Process exec(string command) 运行cmd命令
        */

        //1.获取Runtime的对象
        //Runtime r1 =Runtime.getRuntime();

        //2.exit 停止虚拟机
        //Runtime.getRuntime().exit(0);
        //System.out.println("看看我执行了吗?");


        //3.获得CPU的线程数
        System.out.println(Runtime.getRuntime().availableProcessors());//8
        //4.总内存大小,单位byte字节
        System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);//4064
        //5.已经获取的总内存大小,单位byte字节
        System.out.println(Runtime.getRuntime().totalMemory() / 1024 / 1024);//254
        //6.剩余内存大小
        System.out.println(Runtime.getRuntime().freeMemory() / 1024 / 1024);//251

        //7.运行cmd命令
        //shutdown :关机
        //加上参数才能执行
        //-s :默认在1分钟之后关机
        //-s -t 指定时间 : 指定关机时间
        //-a :取消关机操作
        //-r: 关机并重启
        Runtime.getRuntime().exec("shutdown -s -t 3600");

    }
}

6. Object类

在API帮助文档下,Object类有以下介绍

  • 类名为 Object
  • Runtime类属于 Java.lang 包下,因此在使用的时候不需要进行导包
  • Object类是顶级父类,类的祖宗,不继承于谁
  • 被 public 修饰,可被任何类调用


所有的类都继承自object类。object类是类层次结构的根,它是所有类的超类

无论是自定义的类还是Java内置的类,都直接或间接地继承自object类

具体代码实现:

public String toString()				//返回该对象的字符串表示形式(可以看做是对象的内存地址值)
public boolean equals(Object obj)		//比较两个对象地址值是否相等;true表示相同,false表示不相同
  1. toString方法

创建一个学生类,提供两个成员变量(name , age);并且提供对应的无参构造方法和有参构造方法以及get/set方法

创建一个测试类(ObjectDemo01),在测试类的main方法中去创建学生对象,然后调用该对象的toString方法获取该对象的字符串表现形式,并将结果进行输出

Student类:

public class Student {
    private String name;
    private int age;

    public Student() {
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

测试类:

public class ObjectDemo01 {
    public static void main(String[] args) {
        Student student = new Student("张三", 18);
        System.out.println(student.toString());
    }
}

输出结果:

Student{name='张三', age=18}
  1. equals方法

在测试类的main方法中,创建两个学生对象,然后比较两个对象是否相同

Student类:

public class Student {
    private String name;
    private int age;

    public Student() {
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @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 && Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

测试类:

public class ObjectDemo02 {
    public static void main(String[] args) {
        Student student1 = new Student("张三", 18);
        Student student2 = new Student("张三", 18);

        System.out.println(student1.equals(student2)); // 输出true
    }
}

输出结果:

true

7. 包装类

Java是面向对象的语言,但Java不能把基本的数据类型(byte、short...)作为对象处理

可有时候可能需要把基本数据类型的数据作为对象使用

Java就提供了一系列包装类,把基本数据类型的值包装为引用数据类型的对象

基本数据类型

对应包装类

byte

Byte

char

Character

int

Integer

short

Short

long

Long

double

Double

boolean

Boolean

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Java JDK 17 API 帮助文档Java开发工具包(JDK)的一部分,它提供了Java SE 17的应用程序编程接口(API)的详细文档。这些文档包含了Java SE 17中所有类、接口、方法和字段的详细说明,以及它们的用法和示例。开发人员可以使用这些文档来了解Java SE 17的API,并在编写Java应用程序时使用它们。 ### 回答2: Java JDK 17是Java语言的一个版本,它提供了可以在Java应用程序中使用的各种API。这些API包含了各种类和方法,以帮助开发人员加速开发过程。 Java JDK 17的帮助文档Java开发人员的指南。它详细介绍了Java JDK 17的各种API,并提供了关于如何使用它们的说明。帮助文档还提供了有关Java开发工具,如编译器和调试器的信息。 Java JDK 17的API涵盖了各个方面,包括基础类库、Java虚拟机、Java应用程序接口和Java安全。这些API可以帮助开发人员实现各种不同的功能,例如文件处理,网络编程,数据库连接和多线程编程。 对于初学者,Java JDK 17的帮助文档提供了非常详细的介绍,包括基本的Java语言要素和编程技巧。对于经验丰富的开发人员,它可以作为参考指南,详细介绍了Java JDK 17的所有功能。 帮助文档还提供了例子和代码片段,可以帮助开发人员更快地理解和学习Java JDK 17的API。通过实践和实验这些代码片段,开发人员可以更加深入地理解Java JDK 17的功能和应用。 总之,Java JDK 17的帮助文档Java开发人员不可或缺的指南,可以帮助开发人员更快地理解和掌握Java JDK 17的各种功能,完成他们的编程任务。 ### 回答3: Java JDK 17是Java开发套件的最新版本,提供了许多新的API和其他改进,使Java开发人员能够更有效地编写Java应用程序。Java JDK 17 API帮助文档提供了详细的指南和文档,以帮助Java开发人员更好地理解和应用Java JDK 17 APIJava JDK 17 API帮助文档包含了所有Java JDK 17 API的详细文档文档涵盖了Java JDK 17 API中的类、接口和方法,以及它们的用法和参数。Java JDK 17 API帮助文档还提供了许多示例代码,帮助开发人员更快、更准确地编写Java应用程序。 Java JDK 17 API帮助文档还包括一些有用的工具和指南,帮助开发人员更好地使用Java JDK 17 API。这些工具包括Javadoc,JavaDocs,Eclipse插件等等。另外,帮助文档还提供了一些Java JDK 17新特性的概述和介绍,包括记录API、本地代码注释、向量API等等,这些可以帮助开发人员更好地理解Java JDK 17 API。 总之,Java JDK 17 API帮助文档Java开发人员必备的工具之一。它提供了详细的指南和文档,以帮助开发人员更好地使用Java JDK 17 API。无论是初学者还是经验丰富的开发人员,都可以从Java JDK 17 API帮助文档中获益,并加快Java应用程序的开发和部署。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨空集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值