API(Application Programming interface) 应用程序编程接口
简单来说就是:Java帮我们已经写好的一些类和方法,我们直接拿过来用就可以了
Object类
Object类介绍:
所有的类,都直接或者间接的继承Object类
Object类的方法是一切子类都可以直接使用的
Object的toString方法:
public String toString():默认是返回当前对象在堆内存中的地址信息:类的全类名@十六进制哈希值
toString存在的意义:
父类 toString() 方法存在的意义就是为了被子类定义,以便返回对象的内存信息,而不是地址信息
package com.bingyi.Object;
public class toStringDemo1 {
public static void main(String[] args) {
A a = new A();
System.out.println(a);
System.out.println(a.toString());
}
}
class A {
@Override
public String toString() {
return super.toString();
}
}
重写之后:
package com.bingyi.Object;
public class toStringDemo1 {
public static void main(String[] args) {
A a = new A();
System.out.println(a);
System.out.println(a.toString());
}
}
class A {
@Override
public String toString() {
return "重写toString方法";
}
}
Object的equals方法:
public boolean equals(Object o):默认是比较当前对象与另一个对象的地址是否相同,相同的返回true,不同的返回false
equals存在的意义:
父类equals方法存在的意义就是为了被子类重写,一遍子类自己来制定比较规则
重写equals方法:
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student stu = (Student) obj;
return this.age == stu.age && this.name.equals(stu.name);
} else {
return false;
}
}
Objects概述
Objects类与Object还是继承关系,Objects类是JDK 1.7开始之后才有的
Objects的常见方法:
方法名:public static boolean equals(Object a,Object b)
说明:比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常,再进行equals比较
方法名:public static isNull(Object obj)
说明:判断变量是否为null
package com.bingyi.Object;
import com.mstatic.test.Student;
import java.util.Objects;
public class equalsDemo2 {
public static void main(String[] args) {
Student stu1 = new Student("张三", 77, 8);
Student stu2 = new Student("张三", 77, 8);
System.out.println(Objects.equals(stu1, stu2));
}
}
问题:Objects.equals方法,和stu1.equals方法,有什么区别?
1.Objects.equals方法,内部有依赖于我们自己所编写的equals
2.Objects.equals方法,内部带有非空判断
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
Math类
包含执行基本数字运算的方法
Math类的常用方法:
public static int abs(int a): 获取参数绝对值
public static double ceil(double a):向上取整
public static double floor(double a):向下取整
public static int round(float a): 四舍五入
public static int max(int a,int b): 获取两个int值中的较大值
public static int min(int a,int b): 获取两个int值中的较小值
public static double random(): 返回值为double的随机值,范围【0.0-1.0】
public static double pow(double a,double b): 返回a的b次幂的值
System类
概述:System的功能是静态的,都是直接用类名调用即可
常用方法:
public static void exit(int status):终止当前运行的Java虚拟机,非零表示异常终止
public static long currentTimeMillis():返回当前系统的时间毫秒值形式
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数):数组拷贝
BigDectmal类
概述:
用于解决小数运算中,出现的不精确问题
BigDecimal类的使用
创建对象:
public BigDecimal(double val)
不推荐,无法保证小数的精确
package com.bingyi.Object;
import java.math.BigDecimal;
public class BigDecimaleDemo1 {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal(0.1);
BigDecimal bd2 = new BigDecimal(0.2);
System.out.println(bd1.add(bd2));
}
}
public BigDecimal(String val)
package com.bingyi.Object;
import java.math.BigDecimal;
public class BigDecimaleDemo1 {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal("0.1");
BigDecimal bd2 = new BigDecimal("0.2");
System.out.println(bd1.add(bd2));
}
}
public static BigDecimal valueOf(double val)
package com.bingyi.Object;
import java.math.BigDecimal;
public class BigDecimaleDemo1 {
public static void main(String[] args) {
BigDecimal bd1 = BigDecimal.valueOf(0.1);
BigDecimal bd2 = BigDecimal.valueOf(0.2);
System.out.println(bd1.add(bd2));
}
}
常用成员方法:
public BigDecimal add(BigDecimal b):加法
public BigDecimal subtract(BigDecimal b):减法
public BigDecimal multiply(BigDecimal b):乘法
public BigDecimal divide(BigDecimal b):除法
public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式):除法(除不尽)
包装类
概述
将基本数据类型,包装成类(变成引用数据类型)
Integer类
手动装箱:将基本数据类型,手动包装成类
public Integer(int value):通过构造方法
public static Integer valueOf(int i):通过静态方法
package com.bingyi.Object;
public class IntegerDemo {
public static void main(String[] args) {
int num = 10;
Integer integer = Integer.valueOf(num);
System.out.println(integer);
}
}
手动拆箱:手动将包装类,拆成(转换)基本数据类型
public int intValue():以int 类型返回该Integer的值
package com.bingyi.Object;
public class IntegerDemo {
public static void main(String[] args) {
int num = 10;
Integer integer = Integer.valueOf(num);
int i = integer.intValue();
System.out.println(i);
}
}
Integer常用方法:
public static String toBinaryString(int i):转二进制
public static String toOctalString(int i):转八进制
public static String toHexString(int i):转十六进制
public static String parseInt(int i):将数字字符串,转换为数字