• Java中常用API总结(1)—— Math类(含底层源码阅读)


    一、前言

    本文将介绍有关于Java中的API相关知识点,本文将介绍Math类

    二、概述

    • 帮助我们进行数学计算
    • 私有化构造方法
    • 所有方法都是静态的

    三、源码阅读

    Ctl+N搜索一下Math类,并选择java.long包下的Math
    在这里插入图片描述
    在这里插入图片描述
    不难看出,Math类是私有化构造方法,且是静态方法

    四、常见方法及使用

    1.abs

    public static int abs(int a)					// 返回参数的绝对值
    
    • 1

    2.ceil

    public static double ceil(double a)				// 返回大于或等于参数的最小整数
    
    • 1

    3.floor

    public static double floor(double a)			// 返回小于或等于参数的最大整数
    
    • 1

    4.round

    public static int round(float a)				// 按照四舍五入返回最接近参数的int类型的值
    
    • 1

    5.max

    public static int max(int a,int b)				// 获取两个int值中的较大值
    
    • 1

    6.min

    public static int min(int a,int b)				// 获取两个int值中的较小值
    
    • 1

    7.pow

    public static double pow (double a,double b)	// 计算a的b次幂的值
    
    • 1

    8.random

    public static double random()					// 返回一个[0.0,1.0)的随机值
    
    • 1

    9.测试使用

    在IDEA中测试一下代码

    public class testMath {
        public static void main(String[] args) {
    
            int a = Math.abs(-5);
            System.out.println("-5的绝对值是:" + a);
    
            double b = Math.ceil(-5.29);
            System.out.println("大于或等于-5.29的最小整数位是:" + b);
    
            double c = Math.ceil(5.29);
            System.out.println("大于或等于5.29的最小整数位是:" + c);
    
            double e = Math.floor(-5.29);
            System.out.println("小于或等于-5.29的最小整数位是:" + e);
    
            double f = Math.floor(5.29);
            System.out.println("小于或等于5.29的最小整数位是:" + f);
    
            double g = Math.round(-5.29);
            System.out.println("-5.29四舍五入的结果为:" + g);
    
            double h = Math.round(5.29);
            System.out.println("5.29四舍五入的结果为:" + h);
    
            int max = Math.max(23,98);
            int min = Math.min(23,98);
            System.out.println("23和98中较大的数是:" + max +",较小的数是:" + min);
    
            double result = Math.pow(4,3);
            System.out.println("4的3次方是:" + result);
    
            double num = Math.random();
            System.out.println("获取到的0-1之间的随机数为:" + num);
    
        }
    }
    
    • 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

    测试结果如下

    -5的绝对值是:5
    大于或等于-5.29的最小整数位是:-5.0
    大于或等于5.29的最小整数位是:6.0
    小于或等于-5.29的最小整数位是:-6.0
    小于或等于5.29的最小整数位是:5.0
    -5.29四舍五入的结果为:-5.0
    5.29四舍五入的结果为:5.0
    23和98中较大的数是:98,较小的数是:23
    4的3次方是:64.0
    获取到的0-1之间的随机数为:0.19119575402906042

    在这里插入图片描述

    五、实例应用——水仙花数

    1.题目

    自幂数,一个n位自然数等于自身各个数位上数字的n次幂之和,三位自幂数:水仙花数,统计一共有多少个水仙花数

    2.解答

    public class shuixianhua {
        public static void main(String[] args) {
            //计数器
            int count = 0;
            //得到每一个三位数
            for (int i = 100; i <= 999; i++) {
                //个位 十位 百位
                int ge = i % 10;
                int shi = i / 10 % 10;
                int bai = i / 100 % 10;
                //判断:
                //每一位的三次方之和 跟本身 进行比较。
                double sum = Math.pow(ge, 3) + Math.pow(shi, 3) + Math.pow(bai, 3);
                if (sum == i) {
                    count++;
                    System.out.println(i);
                }
            }
            System.out.println("水仙花数共有:"+count+"个");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    3.测试代码

    153
    370
    371
    407
    水仙花数共有:4个

    在这里插入图片描述

    六、结语

    下一篇文章将会讲述有关System类的知识点

  • 相关阅读:
    Plotjuggler之ulog格式分析
    C高级作业 【使用shell脚本】 实现一个对数组求和的函数,数组通过实参传递给函数+写一个函数输出当前用户的uid和gid,并使用变量接收结果
    解决Vision Transformer在任意尺寸图像上微调的问题:使用timm库
    pytest测试框架
    vue-router4之路由的跳转
    nginx笔记
    Chrome开发者工具课程
    【前端系列】pnpm 与 npm:现代 JavaScript 包管理工具的比较
    震惊,99.9% 的同学没有真正理解字符串的不可变性
    【Java网络编程】 三
  • 原文地址:https://blog.csdn.net/Alita233_/article/details/127807868