Java SE——*API API帮助文档

news2024/11/24 9:37:49

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1230045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云助力港华能源上线“碳汭星云2.0”,推动能源行业绿色低碳转型

11月17日&#xff0c;港华能源与腾讯云联合打造的港华智慧能源生态平台“碳汭星云2.0”升级上线。依托双方的连接、大数据能力和行业深耕经验&#xff0c;该平台打破了园区“数据孤岛”&#xff0c;进一步提升了数据治理、应用集成和复制推广能力&#xff0c;未来有望以综合能源…

记录一次较为完整的Jenkins发布流程

文章目录 1. Jenkins安装1.1 Jenkins Docker安装1.2 Jenkins apt-get install安装 2. 关联github/gitee服务与webhook2.1 配置ssh2.2 Jenkins关联2.3 WebHook 3. 前后端关联发布 1. Jenkins安装 1.1 Jenkins Docker安装 Docker很好&#xff0c;但是我没有玩明白如何使用Docke…

php伪随机数

利用工具 php_mt_seed <?php // php 7.2function white_list() {return mt_rand();}echo white_list(), "\n";echo white_list(), "\n";echo white_list(), "\n"; 输入命令&#xff1a; ./php_mt_seed 1035656029 <?phpmt_srand(181095…

通过U盘重装Win10教程图解

如果我们发现Win10电脑系统出现了问题&#xff0c;可以通过简单的操作来解决问题。如果还是不能解决系统问题&#xff0c;这时候用户就给电脑重新安装Win10系统&#xff0c;这样就能轻松解决问题了。接下来小编给大家详细介绍关于通过U盘重新安装系统Win10的方法步骤。 准备工作…

PC3329L DC-DC降压 10V-100V输入3A大流输出带EN功能实现零功耗只需极少元器件

1. PC3392L特性  通过使能脚关断实现零功耗  宽电压输入范围 10V 至 100V  最大输出电流 3A  集成功率 MOS 管  外围器件少  输出短路保护  温度保护  逐周期限流  输出电压灵活可靠  ESOP8 2. 描述 PC3392L 一款宽电压范围降压型 DC-DC 电源管…

Java面试题07

1.线程池都有哪些状态&#xff1f; 线程池的状态有RUNNING&#xff08;运行中&#xff09;、SHUTDOWN&#xff08;关闭中&#xff0c;不接受新任务&#xff09;、 STOP&#xff08;立即关闭&#xff0c;中断正在执行任务的线程&#xff09;和TERMINATED&#xff08;终止&#x…

Blender洪水淹没毁墙效果

本文中用到了两个Blender插件&#xff1a;FLIP Fluid(流体模拟相关插件) 和 RBDLab&#xff08;碎裂插件&#xff09;: 1.用FLIP Fluid制作流体、域、障碍&#xff0c;确定好流体的冲刷方向&#xff08;后期好摆放被摧毁的墙体&#xff09;&#xff0c;利用插件做出水流动画&a…

信息中心网络提出的背景、研究现状及研究内容

信息中心网络什么时候提出的&#xff1f;未来发展前景&#xff1f;有什么著名实验室在做&#xff1f; 1、提出背景&#xff1a; 互联网产生于上世纪60年代&#xff1a; &#xff08;1&#xff09;网络设备数量呈指数性增长 截至2022年底全球范围内预计将有超过280亿台终端设…

【openGauss/MogDB的TPCH测试】

TPC-H是一个决策支持基准&#xff08;Decision Support Benchmark&#xff09;&#xff0c;它由一套面向业务的特别查询和并发数据修改组成。查询和填充数据库的数据具有广泛的行业相关性。这个基准测试演示了检查大量数据、执行高度复杂的查询并回答关键业务问题的决策支持系统…

MobaXterm配置ssh端口转发(tensorboard使用)

背景&#xff1a; 我有一台本地Windows电脑&#xff0c;上面安装了MobaXterm软件。 MobaXterm通过ssh连接了一台服务器&#xff08;默认是通过22端口连&#xff0c;我这里配了一下&#xff0c;要填别的&#xff09; 现在服务器在跑模型&#xff0c;其6006端口是tensorboard端口…

沸点 | Ultipa 图数据库金融应用场景优秀案例首批入选,金融街论坛年会发布

为推进图数据库在金融行业的创新应用试点&#xff0c;近日&#xff0c;在2023金融街论坛年会“全球金融科技中心网络年会暨ZIBS北京论坛”上&#xff0c;北京前沿金融监管科技研究院发布了基于国际标准组织——国际关联数据基准委员会&#xff08;LDBC&#xff09;的《图数据库…

安全+Linux!IBM新一代大型机Z14全新发布

导读本周&#xff0c;以“架构 人机同行”为主题的IBM Systems创行者高峰论坛在北京召开&#xff0c;IBM全球及大中华区硬件系统部负责人&#xff0c;金融、医疗、制造等领域的企业、合作伙伴共与这一年度盛会&#xff0c;探讨认知时代下的基础架构技术趋势及IBM硬件系统业务的…

【MySQL】_JDBC

目录 1. JDBC原理 2. 导入JDBC驱动包 3. 编写JDBC代码实现Insert 3.1 创建并初始化一个数据源 3.2 和数据库服务器建立连接 3.3 构造SQL语句 3.4 执行SQL语句 3.5 释放必要的资源 4. JDBC代码的优化 4.1 从控制台输入 4.2 避免SQL注入的SQL语句 5. 编写JDBC代码实现…

【SpringBoot3+Vue3】四【基础篇】-前端(vue基础)

目录 一、项目前置知识 二、使用vscode创建 三、vue介绍 四、局部使用vue 1、快速入门 1.1 需求 1.2 准备工作 1.3 操作 1.3.1 创建html 1.3.2 创建初始html代码 1.3.3 参照官网import vue 1.3.4 创建vue应用实例 1.3.5 准备div 1.3.6 准备用户数据 1.3.7 通过…

Matlab论文插图绘制模板第127期—进阶气泡矩阵/热图

​在之前的文章中&#xff0c;分享了Matlab散点图矩阵的绘制模板&#xff1a; 也分享过气泡矩阵图的绘制模板&#xff1a; 考虑到规范性和便捷性&#xff0c;再来分享一下进阶版的气泡矩阵/热图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已…

PlayCover“模拟器”作弊解决方案

当下的游戏市场&#xff0c;移动游戏已占据了主导地位&#xff0c;但移动端游戏碍于屏幕大小影响操作、性能限制导致卡顿等因素&#xff0c;开始逐步支持多端互通。但仍有一些游戏存在移动端与 PC 端不互通、不支持 PC 端或没有 Mac 版本&#xff0c;导致 Mac 设备体验游戏不方…

通信原理板块——纠错编码的基本原理和性能

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、分组码 将信息码分组&#xff0…

CleanMyMac X2024免费测试版好不好用?值不值得下载

如果你是一位Mac用户&#xff0c;你可能会遇到一些问题&#xff0c;比如Mac运行缓慢、磁盘空间不足、应用程序难以管理等。这些问题会影响你的Mac的性能和体验&#xff0c;让你感到沮丧和无奈。那么&#xff0c;有没有一款软件可以帮助你解决这些问题呢&#xff1f;答案是肯定的…

109.firefly-extboot的生成脚本

内核版本&#xff1a; 4.4.194 在firefly的sdk 2.5.1c及以后的版本都是extboot.img&#xff08;对应表中的extboot&#xff09; 但是之前的并不是&#xff0c;而且一个boot.img&#xff0c;&#xff08;对应表中rkboot&#xff09; rkboot的生成方法可以参考解决linux5.15编…

二、什么是寄存器

目录 一、STM32芯片架构简图及系统框图 1.1 STM32芯片架构简图 1.1.1 FLASH是什么&#xff0c;用来做什么 1.1.2 SRAM是什么&#xff0c;用来做什么 1.1.3 片上外设是什么&#xff0c;用来做什么 1.2 系统框图 1.2.1 驱动单元 1.2.2 被动单元 二、什么是寄存器 2.1 存…