常用API(应用程序编程接口)
1. Object中常用API
| 方法名 | 说明 |
|---|---|
| public String toString() | 默认返回当前对象在堆内存中的地址信息:类的权限名@内存地址 |
| public boolean equals(Object o) | 默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不同返回false |
1.1 Object类中toString()方法存在的意义
- 为了被子类重写,以便返回对象的内容信息,而不是地址信息!!
1.2 Object类中equals(Object o)方法存在的意义
- 为了被子类重写,以便子类自己来定制比较规则。
1.3 重写toString()和equals()方法的类
- String、Date、File、包装类等都重写了Object类中的toString()和equals()方法。
2. Objects中常用API
| 方法名 | 说明 |
|---|---|
| public static boolean equals(Object a, Object b) | 比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常(更安全)。再进行equals比较 |
| public static boolean isNull(Object obj) | 判断变量是否为null ,为null返回true ,反之亦然 |
注:Objects.isNull(s1) 等价于 s1==null
在自动生成equals()方法进行字符串比较时,没有用字符串对象的的equals方法,而是选择了Objects的equals方法来比较。使用Objects的equals方法在进行对象的比较会更安全。
@Override
public boolean equals(Object o) {
// 1、判断是否是同一个对象比较,如果是返回true。
if (this == o) return true;
// 2、如果o是null返回false;如果o不是学生类型返回false(带包名检查) ...Student != ..Pig
if (o == null || this.getClass() != o.getClass()) return false;
// 3、说明o一定是学生类型而且不为null
Student student = (Student) o;
return sex == student.sex && age == student.age && Objects.equals(name, student.name);
}
3. StringBuilder中的常用API
| 方法名 | 说明 |
|---|---|
| public StringBuilder append(任意类型) | 添加数据并返回StringBuilder对象本身 |
| public StringBuilder reverse() | 将对象的内容反转 |
| public int length() | 返回对象内容长度 |
| public String toString() | 通过toString()就可以实现把StringBuilder转换为String |
StringBuilder的构造器
| 名称 | 说明 |
|---|---|
| public StringBuilder() | 创建一个空白的可变的字符串对象,不包含任何内容 |
| public StringBuilder(String str) | 创建一个指定字符串内容的可变字符串对象 |
注意:
String :内容是不可变的、拼接字符串性能差。
StringBuilder:内容是可变的、拼接字符串性能好、代码优雅。
4. Math中常用API
| 方法名 | 说明 |
|---|---|
| public static int abs(int a) | 获取参数绝对值 |
| public static double ceil(double a) | 向上取整 |
| public static double floordouble a) | 向下取整 |
| public static int round(float a) | 四舍五入 |
| public static int max(int a,int b) | 获取两个int值中的较大值 |
| public static double pow(double a,double b) | 返回a的b次幂的值 |
| public static double random() | 返回值为double的随机值,范围是0.0-1.0(包前不包后) |
5. System中的常用API
| 方法名 | 说明 |
|---|---|
| public static void exit(int status) | 终止当前运行的 Java 虚拟机,非零表示异常终止 |
| public static long currentTimeMillis() | 返回当前系统的时间毫秒值形式 |
| public static void arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数) | 数组拷贝 |
时间毫秒值:指的是从1970年1月1日 00:00:00走到此刻的总的毫秒数,应该是很大的。 1s = 1000ms。
6. BigDecima常用API
| 方法名 | 说明 |
|---|---|
| public BigDecimal add(BigDecimal b) | 加法 |
| public BigDecimal subtract(BigDecimal b) | 减法 |
| public BigDecimal multiply(BigDecimal b) | 乘法 |
| public BigDecimal divide(BigDecimal b) | 除法 |
| public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) | 除法 |
BigDecima的作用:解决浮点型运算精度失真问题。
BigDecimal对象的获取方法:
- BigDecimal recommend1 = new BigDecimal("0.1");
- BigDecimal recommend2 = BigDecimal.valueOf(0.1);(优先推荐) 方法2方法内部其实执行了Double 的 toString,而 Double 的 toString 按 double 的实际能表达的精度对尾数进行了截断。