一、Object与Objects
Object
概念: Java对象的总类。
方法:
方法 | 说明 |
---|---|
String toString() | 默认返回当前对象在堆内存中的地址:类全名@内存地址 |
Boolean equals(Object o) | 比较对象的地址是否相同 |
- toString()
StudentExtend student = new StudentExtend();
System.out.println(student.toString());
/*打印结果*/
com.zengoo.template_function.StudentExtend@3b6eb2ec
问:toString()返回的地址有啥用?
答:实际开发中,并不会直接拿内存地址去开发,而是拿着存储的数据进行处理,所以toString()通常被用来子类重写打印语句。
class Object子类{
@Override
public String toString(){
return "xxx";
}
}
- equals()
Student student = new StudentExtend();
Student student2 = new StudentExtend();
System.out.println(student.equals(student2));
/*打印结果*/
false
问:equals()的作用可以被“==”替代,为什么还要使用它呢?
答:在使用场景中,通常需要比较两者的内容是否一致,所以Object的equals方法会被用来重写子类比较方法。
class Object子类{
@Override
public Boolean equals(Object o){
if (this == o) return true;
if(o == null || this.getClass() != o.getClass()) return false;
类名 变量名 = (类名)o;
return xxx == 变量名.xxx && Objects.equals(xx,变量名.xx);
}
}
Objects
概念: Objects继承Object,是一种安全版Object。
方法:
方法 | 说明 |
---|---|
static boolean equals(Object a,Object b) | 比较两个对象是否相等,底层先判断非空,再进行普通equals比较 |
static boolean isNull(Object obj) | 判断变量是否为null |
二、StringBuilder
概念: 一个可变的字符串类,作为一种对象容器存在。
作用: 提高字符串操作效率,例如拼接、修改等。
注意:StringBuilder实际上不是字符串,最终还是要转为String对象。
构造器
名称 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象 |
public StringBuilder(String str) | 创建一个包含指定字符串内容的可变字符串对象 |
常用方法
方法 | 说明 |
---|---|
StringBuilder append(E e) | 添加数据 |
StringBuilder reverse() | 反转数据 |
int length() | 获取数据长度 |
String toString() | 转换成String |
使用方法
- addpend()
/*方法一:顺序执行*/
StringBuilder sb = new StringBuilder(); // new StringBuilder() == ""
sb.append(1);
sb.append("Stirng")
sb.append(false);
System.out.println(sb.toString());
//结果
1Stringfalse
StringBuilder sb1 = new StringBuilder(); // == ""
/*方法二:链式执行(原理是每次执行都会返回当前对象)*/
sb1.append(1).append(2).append("3");
System.out.println(sb1.toString());
//结果
123
- reverse()
/*使用场景是将两个字符串合并*/
sb.reverse().append(sb1.reverse().toString()).reverse();
//执行过程
1、反转sb:eslafgnirtS1
2、反转sb1:321
3、连接sb1:eslafgnirtS1321
4、反转sb:1231Stringfalse
- length()
System.out.println(sb.length());
//打印结果
15
三、Math
概念: Java提供的数学工具类。
常用方法:
方法 | 说明 |
---|---|
int abs(int a) | 获取绝对值 |
double ceil(double a) | 向上取整 |
double floor(int a) | 向下取整 |
int round(float a) | 四舍五入 |
double pow(double a,double b) | 返回a的b次方值 |
double random() | 获取 [ 0.0 - 1.0 ) 随机值 |
四、System
概念: 系统工具类。
常用方法
方法 | 说明 |
---|---|
void exit(int status) | 终止当前虚拟机,status != 0 表示异常终止 |
long currentTimeMillis() | 以毫秒数获取当前系统时间戳 |
void arraycopy(来源数组,起始索引,目标数组,起始索引,拷贝个数) | 数组复制 |
五、BigDecimal
概念: 创建对象BigDecimal封装浮点型数据。(建议使用valueOf()方法进行封装)
作用: 避免double类型的精度失真问题。
常用方法
方法 | 说明 |
---|---|
BigDecimal add(BigDecimal b) | 加法 |
BigDecimal subtract(BigDecimal b) | 减法 |
BigDecimal multiply(Big Decimal b) | 乘法 |
BigDecimal divide(Big Decimal b) | 除法 |
BigDecimal divide(Big Decimal b,int scale(精度),Enum moudle(舍入模式)) | 除法 |