首页 > 其他分享 >API

API

时间:2024-09-15 16:25:13浏览次数:1  
标签:System API static println public Math out

API 介绍

API:Application Programmming Interface,应用程序编程接口。

API 就是别人已经写好的东西,我们不需要自己编写,直接使用即可。

Java API:指的就是 JDK 中提供的各种功能的 Java 类。这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类该如何使用即可。

中文在线文档

Oracle 公司为这些类提供了相应的文档,即 JDK API 帮助文档,用于告诉开发者如何使用这些类,以及这些类里面包含的方法。

Java类的组织形式:

图片名称

使用 java.lang 包时不需要使用 import 语句。

util 是 utiliy 的缩写,意为多用途的,工具性质的包。这个包中主要存放了:集合类(如 ArrayList,HashMap 等),随机数产生类,属性文件读取类,定时器类等类。

Math

Math 类属于 lang 包,是不需要导包的。

是一个帮助我们用于进行数学计算的工具类,私有化构造方法,所有的方法都是静态方法。

常用方法:

  • max

  • min

  • ceil

  • floor

  • round

  • pow

  • random

  • sqrt

  • cbrt

  • pow

package MathDemo;

public class Demo1 {
    public static void main(String[] args) {
        // bug:
        // 以 int 类型为例,取值范围:-2147483648 - 2147483647
        // 如果没有正数与负数对应,那么传递负数结果有误
        // -2147483648 没有正数与之对应,所以 abs 结果产生 bug
        System.out.println(Math.abs(-2147483647));       // 2147483647
        System.out.println(Math.abs(-2147483648));       // -2147483648
        // 建议用 JDK 15 才开始有的一个方法:absExact(),这样如果找不到对应的正整数,程序会报错。
        // System.out.println(Math.absExact(-2147483648));  // Exception in thread "main" java.lang.ArithmeticException: Overflow to represent absolute value of Integer.MIN_VALUE
    }
}

下面这两个常量在 Math 类中:

public static final double E = 2.7182818284590452354;
public static final double PI = 3.14159265358979323846;

对于静态方法和静态变量(包括常量)可以用 Math.方法名Math.变量名 的方式直接调用,但是也可以导入 Math 类而不用写 Math. 就能直接使用方法或变量。

在源文件的最上方加上:

import static java.lang.Math.*;

程序示例:

import static java.lang.Math.*;

public class MathDemo {
    public static void main(String[] args) {
        System.out.println(PI);             // 3.141592653589793
        System.out.println(E);              // 2.718281828459045
        System.out.println(cbrt(8));      // 2.0
    }
}

在 Math 类中,为了达到最佳的性能,所有的方法都使用计算机浮点单元中的例程。如果得到一个完全可预测的结果比运行速度更重要的话,就应该使用 StrictMath 类。它实现了 "可自由分发数学库(Freely Distributable Math Library, FDLIBM)" 的算法,确保在所有平台上得到相同的结果。

Math 类提供了一些方法使整数运算更安全。如果一个计算溢出,数学运算符只是悄悄地返回错误的结果而不做任何提醒。例如,10 亿乘以 3(1000000000 * 3)的计算结果将是 -1 294 967 296,因为最大的 int 值也只是刚刚超过 20 亿。不过,如果调用 Math.multiplyExact(1000000000, 3),就会生成一个异常。你可以捕获这个异常或者让程序终止,而不是允许它给出一个错误的结果然后悄无声息地继续运行。另外,还有一些方法(addExact、subtractExact、incrementExact、decrementExact、negateExact 和 absExact)也可以正确地处理 int 和 long 参数。

如果想舍入(round)一个浮点数来得到最接近的整数,可以使用 Math.round 方法。round 方法的返回值是 long 类型。

程序示例:

public class MathDemo2 {
    public static void main(String[] args) {
        double a = 9.98;
        int b = (int) Math.round(a);
        System.out.println(b);          // 10
    }
}

程序示例:

public class MathDemo1 {
    public static void main(String[] args) {
        /*
            public static int abs(int a) 获取参数绝对值
            public static double ceil(double a) 向上取整
            public static double floor(double a) 向下取整
            public static int round(float a) 四舍五入
            public static int max(int a,int b) 获取两个int值中的较大值
            public static double pow(double a,double b) 返回a的b次幂的值
            public static double random() 返回值为double的随机值,范围[0.0,1.0)
        */

        // abs 获取参数绝对值
        System.out.println(Math.abs(88));
        System.out.println(Math.abs(-88));

        // bug:
        // 以int类型为例,取值范围: -2147483648~ 2147483647
        // 如果没有正数与负数对应,那么传递负数结果有误
        //-2147483648 没有正数与之对应,所以abs结果产生bug
        // system.out.println(Math.abs(-2147483647));//2147483647
        // System.out.println(Math.absExact(-2147483648));

        // 进一法,往数轴的正方向进一
        System.out.println(Math.ceil(12.34));// 13.0
        System.out.println(Math.ceil(12.54));// 13.0
        System.out.println(Math.ceil(-12.34));//-12.0
        System.out.println(Math.ceil(-12.54));//-12.0

        System.out.println("-------------------------------");

        // 去尾法,
        System.out.println(Math.floor(12.34));// 12.0
        System.out.println(Math.floor(12.54));// 12.0
        System.out.println(Math.floor(-12.34));//-13.0
        System.out.println(Math.floor(-12.54));//-13.0
        System.out.println("-------------------------------");
        // 四舍五入
        System.out.println(Math.round(12.34));// 12
        System.out.println(Math.round(12.54));// 13
        System.out.println(Math.round(-12.34));//-12
        System.out.println(Math.round(-12.54));//-13
        System.out.println("-------------------------------");
        // 获取两个整数的较大值
        System.out.println(Math.max(20, 30));// 30
        // 获取两个整数的较小值
        System.out.println(Math.min(20, 30));// 20
        System.out.println("-------------------------------");

        // 获取a的b次幂
        System.out.println(Math.pow(2, 3));// 8
        // 细节:
        // 如果第二个参数 0~ 1之间的小数
        // system.out.println(Math.pow(4,0.5));//2.0
        // System.out.println(Math.pow(2,-2));//0.25
        // 建议:
        // 第二个参数:一般传递大于等于1的正整数。
        System.out.println(Math.sqrt(4));// 2.0
        System.out.println(Math.cbrt(8));// 2.0
        System.out.println("-------------------------------");
        for (int i = 0; i < 1; i++) {
            System.out.println(Math.floor(Math.random() * 100) + 1);
            // Math.random() [0.0 1.0)
            //* 100         [0.0 100.0)
            // floor         去掉了后面的小数
            //+1            [1 100.e]
        }
    }
}

标签:System,API,static,println,public,Math,out
From: https://www.cnblogs.com/Chengkai730/p/18415332

相关文章

  • Spring Boot-RESTful API相关问题
    SpringBootRESTfulAPI相关问题探讨SpringBoot是基于Spring框架的简化开发工具,提供了快速构建RESTfulAPI的能力。在实际开发中,SpringBoot的RESTAPI可以快速开发出符合REST架构风格的接口。然而,在构建RESTfulAPI时,开发者可能会遇到一系列常见问题和挑战......
  • Cortex-A7:__disable_irq和GIC_DisableIRQ、__enable_irq和GIC_EnableIRQ的区别(2)——AP
    0相关资料ARM®GenericInterruptControllerArchitectureversion2.0.pdf1API测试对比1.1__disable_irq同时GIC_DisableIRQ验证程序如下:voidgic_test(void){__disable_irq();GIC_DisableIRQ(UART4_IRQn);}测试结果:所有中断都无法响应。1.2_......
  • 通过API接口获取下来的数据需要怎样应用?
    在当今数字化时代,通过API接口获取数据已成为企业获取、处理和分析信息的重要手段。API接口不仅能够提高数据交互的效率,还能促进数据的安全性和灵活性。以下是如何将通过API接口获取的数据有效应用的一些方法和策略。 数据整合与分析企业可以通过API接口将不同来源的数据整合在一起......
  • FastAPI 应用安全加固:HTTPSRedirectMiddleware 中间件全解析
    在当今的网络环境中,数据安全变得越来越重要。HTTPS作为一种安全协议,它通过加密传输数据来保护用户信息免受窃取和篡改。在FastAPI应用中,确保所有的HTTP请求都通过HTTPS进行是至关重要的。中间件在FastAPI中用于处理请求前后的通用任务,例如身份验证、日志记录、请......
  • 从单体到微服务:FastAPI ‘挂载’子应用程序的转变
    在现代Web应用开发中,模块化架构是一种常见的设计模式,它有助于将大型应用程序分解为更小、更易于管理的部分。FastAPI,作为一个高性能的PythonWeb框架,提供了强大的支持来实现这种模块化设计。通过“挂载”子应用程序,我们可以为不同的功能区域(如前端接口、管理员接口和用......
  • 深入理解FastAPI中的root_path:提升API部署灵活性的关键配置
    在Web开发领域,FastAPI因其高性能、易于使用和类型提示功能而备受开发者喜爱。然而,当涉及到在生产环境中部署FastAPI应用程序时,我们常常需要面对一些挑战,比如如何正确处理代理服务器添加的路径前缀。这时,root_path配置就变得至关重要。本文将深入探讨FastAPI中的root_path,并......
  • 通过API接口获取下来的数据需要怎样应用?
    在当今数字化时代,通过API接口获取数据已成为企业获取、处理和分析信息的重要手段。API接口不仅能够提高数据交互的效率,还能促进数据的安全性和灵活性。以下是如何将通过API接口获取的数据有效应用的一些方法和策略。数据整合与分析企业可以通过API接口将不同来源的数据整合在一......
  • 通过API接口获取数据:高效、灵活的数据交互之道
    在数字化时代,数据已成为企业最宝贵的资产之一。企业和开发者对于数据的获取、处理和分析的需求日益增长。API(应用程序编程接口)接口作为连接不同系统和应用程序的桥梁,提供了一种高效、灵活的方式来获取和交换数据。本文将探讨为什么通过API接口获取数据是现代应用程序开发的关键。AP......
  • Vue 3 Composition API:context 的力量
    ......
  • 通过API接口获取数据:高效、灵活的数据交互之道
    在数字化时代,数据已成为企业最宝贵的资产之一。企业和开发者对于数据的获取、处理和分析的需求日益增长。API(应用程序编程接口)接口作为连接不同系统和应用程序的桥梁,提供了一种高效、灵活的方式来获取和交换数据。本文将探讨为什么通过API接口获取数据是现代应用程序开发的关键。......