JAVA——常用API:Math,System,BigDecima

本文详细介绍了Java中的常用API,包括Object类的基本方法如toString()和equals(),Objects类的安全比较,StringBuilder高效字符串操作,Math类的数学运算,System类的通用功能,以及BigDecimal类用于高精度浮点运算。通过学习这些API,可以更好地理解和应用Java语言。
摘要由CSDN通过智能技术生成

常用API

什么是API?
API(Application Programming interface)应用程序编程接口。
简单来说:就是Java帮我们已经写好的一些方法,我们直接拿过来用就可以了。

Object

Object类的作用:
1、一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。
2、Object类的方法是一切子类都可以直接使用的,所以我们要学习Object类的方法。
Object类的常用方法:

方法名说明
public String toString()默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址
public Boolean equals(Object o)默认是比较当前对象与另一个对象的地址是否相同,相同返回trus,不同返回false

toString()
问题引出:
1、开发中直接输出对象,默认输出对象的地址其实毫无意义的。
2、开发中输出对象变量,更多的时候是希望看到对象的内容数据而不是对象的地址信息。

toString()存在的意义
父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息!!

Object的equals方法
问题思考:
直接比较两个对象的地址是否相同完全可以用 “==” 替代equals。

equals存在的意义
父类equals方法存在的意义就是为了被子类重写,以便子类自己来定制比较规则。

Objects

Object类与Object还是继承关系,Objects类是从JDK 1.7开始之后才有的。

官方在进行字符串比较时,没有对象自己的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);
}

Objects的equals方法比较的结果是一样的,但是更安全。
Objects的常见方法:

方法名说明
public static boolean equals(Object a, Object b)比较两个对象的,底层会先进行非空判断,从而可以避免空指针异常。在进行equals比较
public static boolean isNull(Object o)判断变量是否为null,为null返回true,反之

源码分析:

public static boolean equals(Object a,Object b) {
	return (a == b) || (a != null && a.equals(b));
}

StringBuilder

1、StringBuilder是一个可变的字符串类,我们可以把他看成是一个对象容器。
2、作用:提高字符串的操作效率,如拼接、修改等。
3、StringBuilder构造器

名称说明
public StringBuilder()创建一个空白的可变的字符串对象,不包含任何内容
public StringBuilder(String str)创建一个指定字符串内容的可变字符串对象

总结
1、为什么拼接、反转字符串建议使用StringBuilder?
String:内容是不可变的、拼接字符串性能差
StringBuilder:内容是可变的、拼接字符串性能好、代码优雅。
定义字符串使用String
拼接、修改等操作字符串使用StringBuilder

Math类

1、包含执行基本数字运算的方法,Math类没有提供公开的构造器。
2、如何使用类中的成员呢?看类的成员是否都是静态的,如果是,通过类名就可以直接调用

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 doublle pow(double a,double b)获取a的b次幂的值
public static double random( )返回值为double的随机值,范围[0.0,1.0)

System类

System的功能是通用的,都是直接用类名调用即可,所以System不能被实例化
System类的常用方法

方法名说明
public static void exit(int status)终止当前运行的Java虚拟机,非零表示异常终止
public static long currentTimeMills()返回当前系统的时间毫秒值形式
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)数组拷贝

时间毫秒值
计算机认为世界是有起点的,起始时间:1970年1月1日 00:00:00
时间毫秒值:指的是从1970年1月1日 00:00:00走到此刻的总的毫秒数,应该是很大的。1s = 1000ms。
原因:
1969年8月,被而是现实程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,它使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。
随后汤普逊和同时丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX。
1970年1月1日 算C语言的生日。

long time = System.currentTimeMillis();
System.out.println(time); //1575465416955

BigDecimal

作用:用于解决浮点型运算精度失真的问题
使用步骤:创建对象BigDecimal封装浮点型数据(最好的方法是调用方法)

public static BigDecimal valueOf(double val): 包装浮点数称为BigDecimal对象。

BigDecimal常用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 对象,精确几位,舍入模式)除法

BigDecimal 是一定要精度运算的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值