一.Math对象
数学函数类,类是最终类不能被继承,其中的方法都是静态方法,类名直接调用即可
- PI:圆周率
- 绝对值:abs
- ceil():求大于或等于给定值的最小整数,向上取
- floor():求小于或等于给定值的最大整数 向下取
- random():生成一个0~1之间的小数
- round():四舍五入
public class MathDemo {
public static void main(String[] args) {
System.out.println("圆周率"+Math.PI);
System.out.println("绝对值"+Math.abs(-18));
System.out.println("ceil:"+Math.ceil(-19.2));
System.out.println("floor:"+Math.floor(-16.8));
System.out.println("四舍五入:"+Math.round(15.6));
System.out.println("随机数:"+Math.random());
//需求:随机生成1~10之间的整数数字
System.out.println(Math.floor((Math.random()*10)));
//需求:随机1~10之间的数字
System.out.println("1~10:"+Math.random()*10+1);
//需求:指定数组的大小,使用随机数生生随机的下标
//random()*数组长度
String[]arr=new String[5];
System.out.println("数组下标:"+Math.floor(Math.random()*arr.length));
}
}
二.Object类
该类为所有类的超类,默认是省略的
-
getClass:获取运行时类的路径
-
hashCode():对象的地址
-
toString()默认返回对象的路径+地址(将类的信息以字符串的形式表示出来,是系统系统的一种输出形式)自动调用
-
equals()比较两个对象是否相等
public class ObjectDemo { public static void main(String[] args) { Test test=new Test(); //getClass System.out.println("获取到运行时类的路径:"+test.getClass()); //hashCode System.out.println("hashCode值:"+test.hashCode()); Test test2=new Test(); System.out.println("hashCode值:"+test.hashCode()); //toString System.out.println(test.toString()); System.out.println(test); //equals() Test test3=test; System.out.println(test == test2); System.out.println(test.equals(test3)); } } class Test{}
总结:==号如果比较的是基本数据类型,那比较的值是否相等,如果比较的是引用数据类型,那比较的是地址是否相同;
面试题:Object中都有哪些方法
1.hashCode() 通常用于表示某个对象的地址
2.equals() 判断对象是否相同
3.==比较基本数据类型时比较的是数值,如果是比较引用数据类型,那么比较的是地址
4.toString() 将类的信息以字符串的形式表示出来
通常开发者会输入对象,为了能够更加快速清晰的知道该对象中的属性的值分别都是什么,此时就会重写该类的toString 方法
直白点说:toString方法是系统提供的一种输出格式