常见API

Java 未结 1 220
网络营销学院
网络营销学院 2021-05-08 09:28
悬赏:58
相关标签:
1条回答
  • 2021-05-08 09:57
    1,Math
            应用场景:
                    只要是数学运算就可以使用到这个类。
            特点:
                    所有的方法都是静态的,需要用类名点去调用。

            需要掌握的:
                    Math.PI;//圆周率
                    返回值 = Math.abs(数值); //取绝对值

                    double cbrt = Math.cbrt(8); //开三次方。得到立方根
                    double sqrt = Math.sqrt(4);      //开平方根。


                    ceil(double a) //向上取整   --- 进一法
                    floor(double a) //向下取整  --- 去尾法

                    pow(double a, double b) //返回 a的b次方
                    //求圆的面积:
                            Math.PI * Math.pow(r,2);




    ,2.System类
            掌握:
                    System.exit(0); //停止虚拟机。

                    System.currentTimeMillis(); //返回当前时间的毫秒值。
                    什么是毫秒?
                            1秒 = 1000 毫秒 //因为window系统只能精确到毫秒。

                    计算机中的时间原点:
                            1970年1月1日 00:00:00 但是我天朝大国是在东八区。所以有时差。
                            针对于我天朝大国来讲,时间原点 1970年1月1日 08:00:00

                    //所以,这个System.currentTimeMillis()返回是从时间原点开始到现在的这个时间过了多少毫秒。返回值是一个long类型的。

            了解:
                    arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
                    //用来进行数组的拷贝。

                    //后面会讲一些源码,在源码中,有的就使用到了这个方法。

                    案例:
                                 // arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
            //src 源数组
            //srcPos 从源数组的第几个索引开始拷贝
            //dest 拷贝目的地
            //destPos 拷贝到哪个索引开始
            //length 拷贝几个

            int [] arr1 = {1,2,3,4,5};
            int [] arr2 = new int[5];
            System.arraycopy(arr1,0,arr2,0,arr1.length);
            for (int i = 0; i < arr2.length; i++) {
                System.out.println(arr2[i]);
            }

    3.Object类
            Object类是所有类的直接或者间接父类。
            如果一个类没有指定继承关系,此时虚拟机默认认为这个类继承于Object类。
            所有的类都可以使用Object中的方法。
            所有的对象都可以使用Object类型的变量去接收。



    4.Object类中的toStirng方法
            Student s = new Student();
            ArrayList<String> list = new ArrayList<>();
            String str = "abc";
           
            System.out.println(s);//地址值
            System.out.println(str);//字符串的属性值
            System.out.println(list);//集合中的元素值


            为什么我们自己写的类,创建出来的对象,直接打印是一个地址值。
            而Java中提供的类,创建出来的对象,直接打印不是地址值呢?
            System.out.println(s);



    总结:
            Student s = new Student();
            System.out.println(s);
            打印一个对象,其实就是先通过这个对象调用他的toString方法,再打印这个toString方法的返回值。


            所以当我们打印一个学生对象时。其实就是调用了Student类中的toString方法。
            我们之前没有在Student类中写toString方法,所以到父类Object中找。
            而Object的toString方法返回的就是对象的地址值。


            而,String类,ArrayList类,重写了toString方法,所以当打印一个字符串或者打印一个集合的时候就是属性值。


    简单来说:
            要知道什么就可以了?
            "以后show方法一律写成toString"


    5,Object类中的equals方法
            不是每次都必须重写的。
            当我们需要比较对象内部的属性值时需要重写。

            equals方法:
                    只能比较引用数据类型。
                    如果这个类里面重写了equals方法,那么比较的就是内部的属性值。
                    如果这个类没有重写equals方法,那么使用的就是父类Object类中的equals方法,比较的就是地址值。


            案例:
                    String s1 = "abc";
                    String s2 = new String("abc");
                    System.out.println(s1.equals(s2));//true 因为String类重写了。

                    StringBuilder sb1 = new StringBuilder("abc");
                    StringBuilder sb2 = new StringBuilder("abc");
                    System.out.println(sb1.equals(sb2));//false 因为StringBuilder类没有重写。



    40 讨论(0)
提交回复