java零基础入门-Number & Math 类

101 阅读6分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情

哈喽,各位小伙伴们好,我是喵手。

       今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流 学 习,互相学习,才能成长的更快,对吧。

       我是一名java开发,所以日常接触到最多的就是java啦,所以我趁自己有空,就来好好回忆,把自己学到的会的,进行输出,不图什么有回报,只想能帮助到更多的小伙伴,就好。

       小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对喵手我创作道路上最好的鼓励与支持!

一、概述

       论前几期啊,我们是分别讲了Object类Date类FormDate类Calendar类System类StringBuilder类,不知道大家掌握的如何,如果没有及时巩固的同学,可以看我这里,我给大家罗列了下,快速学习通道,只希望能帮助到大家更好的学习与成长,这就是我写作的初衷。

二、前言

       在日常使用java进行项目开发的过程中,经常会遇到要使用对象而不是内置数据类型的场景,那么基于这类场景,我们应该如何去解决呢?需要使用基本教学运算时又该如何去使用?所以今天我要给大家带来的内容就是有关于它的,具有很好的参考价值。

       废话不多说,咱们直接步入正题吧。

三、本期教学目标

  • 掌握内置数据类型
  • 掌握Number抽象类
  • 掌握Number子类
  • 理解装箱 | 拆箱概念
  • 掌握Math类
  • 了解Math类的常用方法Api
  • ...

四、正文

1️⃣内置数据类型

       通常,我们在使用数字时,我们都可能都使用内置的数据类型,比如:int、long、float、double等,具体使用比如:

        int a = 1;
        float b = 13.1f;
        double c = 1.21;
        byte d = 1;

       对于基本数据类型的使用,这在日常开发中都很常见,对吧,但是对于某些场景,就得使用到其对应的封装类,为了解决这个问题,其实java有提供一整套数据类型封装类,其中就有(Integer、Long、Byte、Double、Float、Short)等。

具体对于关系请看如下:

2️⃣Number抽象类

       对于数值类型,比如byte、short、integer等,他们的父类都是Number类(抽象类),位于java.lang包。具体可以看下如下示意图:

       对于抽象类而言,不能直接被实例化,要实例化其具体的子类才行。但子类等可以使用父类的所有方法。而且为Number的子类有提供将表示的数值转换为对于基础数据类型的方法,共有6个,比如对于int ,有intValue()方法,返回一个int类型的值,再比如double Double(),返回一个double类型的数值类型。代码演示:

        Number num = new Double(13.14);
        System.out.println("返回 double 类型的值:" + num.doubleValue());
        System.out.println("返回 int 类型的值:" + num.intValue());

执行结果如下:

明显可以看到该被实例化的num,可以有各种方法

3️⃣Number子类

       对于Number类,它拥有如下六种子类,具体如下:Double、Float、Byte、Short、Integer 以及 Long,抽象类它不能直接被实例化,只能实例化其具体的子类。

因此,这里会有个概念出现,具体示例请看如下:

        Integer e = 520;
        int sum = e+1;
        System.out.println(sum);

       可想而知,输出值肯定是521. 可你细看,明明是个Integer封装类型,却能跟int类型进行相加,而且编译还不报错,其实啊,这就涉及到了类型拆箱,啥意思?请看第4点介绍。

4️⃣装箱 | 拆箱

       何为装箱?又何为拆箱?说说了装箱就是自动将基本数据类型转换为包装类。
拆箱就是自动将包装类转换为基本数据类型。

       而对于上方,正是当sum被指定成一个整数型时,编译器对e进行装箱,因为e是一个对象,然后为了e能进行运算与1相加,就对e进行了拆箱。

5️⃣Math类

       对于该类,顾名思义,就是一个数学类,位于 java.lang 包中,包含各种数学公式,比如提供了初等指数、对数、取平方根、求三角函数等方法。

由于它的构造方法都是私有的(private),想使用它就不能直接创建Math类对象,并且 Math 类中的所有方法都是类方法,都被static修饰,所以可以直接通过类名来进行方法调用。

6️⃣Math类常用方法Api

       如下我来给大家普及一下Math类的常用方法。在日后的实际开发中,也是非常会遇到使用,虽然不要去必须掌握,但是起码知道该类提供这些方法就行。

  • public static int abs(int a)

作用:返回参数a的绝对值。

  • public static double ceil(double a)

作用:返回大于或等于参数a的最小(最接近负无穷大)double值。

  • public static double floor(double a)

作用:返回小于或等于参数且等于数学整数的最大(最接近正无穷大)double值。

  • public static int round(float a)

作用:按照四舍五入返回最接近参数a的整数。

  • 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) 范围内的伪随机浮点数。

​​​... ...

       好啦,以上就是本期内容的全部教学内容啦,如果对文中的任何知识点有疑问,欢迎评论区评论留言呀,我看见都会一一解答的。

五、文末

       教学是结束了,但是有些话不知我但讲不当讲,啊哈哈, 可我还是想说给你们听听。如下是我很喜欢的一句话,我打算送给你们,希望我们都能变得更好更优秀。

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!

-------------------------------------------

⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

-------------------------------------------