javaSE-4.API
1.Object
类
Objects.equals
方法和stu.euqals
方法的区别
- 细节:
Objects.equals
方法,内部依赖于我们自己编写的equals
- 好处:
Objects.equals
方法,内部带有null
判断
public class Main {
public static void main(String[] args){
Student stu1 = new Student("张三", 23);
Student stu2 = new Student("张三", 23);
System.out.println(stu1.equals(stu2));
System.out.println(Objects.equals(stu1, stu2));
}
}
class Student{
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age && Objects.equals(name, student.name);
}
}
2.BigDecimal
类
- 作用:解决小数运算中,出现的不精确问题
BigDecimal
创建对象
public BigDecimal(double vla)
:不推荐,无法保证小数运算的精确
public BigDecimal(String val)
public static BigDecimal valueOf(double val)
public class Main {
public static void main(String[] args) {
BigDecimal bd1 = new BigDecimal(0.1);
BigDecimal bd2 = new BigDecimal("0.2");
BigDecimal bd3 = BigDecimal.valueOf(0.3);
}
}
BigDecimal
常用成员方法
public BigDecimal add(BigDecimal b)
:加法
public BigDecimal subtract(BigDecimal b)
:减法
public BigDecimal multiply(BigDecimal b)
:乘法
public BigDecimal divide(BigDecimal b)
:除法
public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式)
:除法
- 舍入模式:
RoundingMode.HALF_UP
:四舍五入
RoundingMode.UP
:如果后面小数,直接在最后一位加一;没有的话就不加
RoundingMode.DOWN
:删除后面的小数
- 注意:如果使用
BigDecimal
对象,出现了除不尽的情况,就会出现异常
3.包装类
- 包装类:将基本数据类型,包装成类,变成引用数据类型
- 手动装箱:调用方法,手动将基本数据类型,包装成类
public static Integer valueOf(int i)
:通过静态方法
- 手动拆箱:调用方法,手动将包装类,拆成(转换成)基本数据类型
public int intValue()
:以int
类型返回该Integer
的值
public class Main {
public static void main(String[] args) {
int num = 10;
Integer i1 = Integer.valueOf(num);
int i2 = i1.intValue();
}
}
- JDK5版本开始,出现了自动拆装箱
- 自动装箱:可以将基本数据类型,直接赋值给包装类的变量
- 自动拆箱:可以将包装类的数据,直接赋值给基本数据类型变量
- 结论:基本数据类型,和对应的包装类,可以直接做运算了,不需要操心转换的问题了
public class Main {
public static void main(String[] args) {
int num = 10;
Integer i1 = num;
int i2 = i1;
}
}
Integer
常用方法:
public static String toBinaryString(int i)
:转二进制
public static String toOctalString(int i)
:转八进制
public static String toHexString(int i)
:转十六进制
public static int parseInt(String s)
:将数字字符串,转换为数字