Day18 常用API、异常机制

本文详细解读了Java中的Math类、BigInteger和BigDecimal的用法,涉及科学计算、绝对值、精度控制、大整数运算、精度高数运算以及异常处理。特别关注了BigInteger的无限精度和BigDecimal的商业计算适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 谁的方法(哪个类)

2 什么方法(静态还是成员)

3 功能是什么(能做什么)

4 需要传入什么参数

5 返回什么数据

6 方法名

1. Random

1.1 使用

 1.2 案例

2. Number

2.1  DecimalFormat

 

2.2 BigInteger&BigDecimal

2.2.1 概述

java.lang.Math提供了一系列静态方法用于科学计算。其方法的参数和返回

值类型一般为double型。

abs   绝对值 acos,asin,atan,cos,sin,tan 三角函数  sqrt               平方根

pow(double a,doble b)    a的b次幂  log     自然对数

exp  e为底指数

max(double a,double b)

min(double a,double b)

random() 返回0.0到1.0的随机数

long round(double a)      double型数据a转换为long型(四舍五入)

toDegrees(double angrad) 弧度—>角度

toRadians(double angdeg) 角度—>弧度

8、BigInteger和BigDecimal类

8.1 BigInteger

1、Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。

2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供

所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位操作以及一些其他操作。

3、构造器

BigInteger(String val):根据字符串构建BigInteger对象

4、常用方法

public BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger。

BigInteger add(BigInteger val) :返回其值为 (this + val) 的 BigInteger

BigInteger subtract(BigInteger val) :返回其值为 (this - val) 的 BigInteger

BigInteger multiply(BigInteger val) :返回其值为 (this * val) 的 BigInteger

BigInteger divide(BigInteger val) :返回其值为 (this / val) 的 BigInteger。整数 相除只保留整数部分。

BigInteger remainder(BigInteger val) :返回其值为 (this % val) 的 BigInteger。

BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组。

BigInteger pow(int exponent) :返回其值为 (thisexponent) 的 BigInteger。

8.2 BigDecimal

一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中, 要求数字精度比较高,故用到java.math.BigDecimal类。

BigDecimal类支持不可变的、任意精度的有符号十进制定点数。

构造器

public BigDecimal(double val)

public BigDecimal(String val)

常用方法

public BigDecimal add(BigDecimal augend)

public BigDecimal subtract(BigDecimal subtrahend)

public BigDecimal multiply(BigDecimal multiplicand)

public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

2.2.2 使用

2.2.3 阶乘 

3. Math 

3.1 概述

3.2 常用方法 

4. 异常机制

4.1 之前见过的异常 

1 下标越界(数组)

2 空指针异常(数组,面向对象)

3 栈内存移出(递归)

4 类型转换异常(面向对象)

5 数字格式化异常(常用API)

4.2 概述

4.3 继承关系 

4.4 Error 

4.5 Exception 

4.5.1 概述

Exception是所有异常类的父类。分为非RuntimeException和RuntimeException 。

非RuntimeException 

指程序编译时需要捕获或处理的异常,如IOException、自定义异常等。属于checked异常。

RuntimeException 

指程序编译时不需要捕获或处理的异常,如:NullPointerException等。属于unchecked异常。一般是由程序员粗心导致的。如空指针异常、数组越界、类型转换异常等。

4.5.2 常用方法

4.5.3 Try...catch... 

4.5.3.1 第一种

4.5.3.2 第二种 

 

4.5.3.3 第三种 

4.5.4 Throws 

4.5.5 Finally

4.5.6 不能有更宽范的异常

4.6 自定义异常 

4.6.1 语法

4.6.2 应用场景 

 * 需求 :

 *            完成用户登陆

 *                     1 用户拥有 username,password,nickname三个属性

 *                     2 业务逻辑类,提供登陆方法,校验是否登陆成功

 *                                      准备用户数组,保存用户信息(相当于是数据库)

 *                     3 入参是 用户名和密码 , 出参也是用户对象,登陆成功之后,返回用户的所有信息

 *                     4 客户端类,接收用户输入,进行登陆校验

 

 4.6.2.1 用户类

4.6.2.2 数据库

4.6.2.3 Dao

4.6.2.4 service

4.6.2.5 controller

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值