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类没有重写。
|
|