• 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类的知识点

  • 相关阅读:
    深入理解Java集合
    【matlab】【函数学习记录】寻找矩阵最大和次大极值点
    Linux系统Ubuntu配置Docker详细流程
    RabbitMQ 模拟实现【六】:程序模拟实现
    fastlio2 论文笔记
    致敬记者节,合合信息扫描全能王助力新闻工作者构建“随身资料库”
    R语言进行逆概率加权评估竞争风险事件累积发生率(cif)并绘制累积置信区间图
    ABP.Next系列02 项目下载 运行 -Fstyle
    k-均值聚类
    872. 叶子相似的树-遍历树存储数据对比
  • 原文地址:https://blog.csdn.net/Alita233_/article/details/127807868