一 BigInteger
1、Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。
2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供
所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位操作以及一些其他操作。
3使用方法
//必须传入字符串
BigInteger v1 = new BigInteger("1233212");
BigDecimal v2 = new BigDecimal(20);
BigDecimal v3 = new BigDecimal(20);
//+
BigDecimal result = v2.add(v3);
System.out.println(result);
//-
result = v2.subtract(v3);
System.out.println(result);
// /
result = v2.divide(v3);
System.out.println(result);
// *
result = v2.multiply(v3);
System.out.println(result);
// %
result = v2.remainder(v3);
System.out.println(result);
二 Math
2.1 java.lang.Math 提供了一系列静态方法用于科学计算,他方法的参数和返回值类型一般为double型
2.2使用方式
//绝对值 System.out.println(Math.abs(-2)); //向上取整,有小数,就进位 System.out.println(Math.ceil(2.0000001)); //返回最大值 System.out.println(Math.max(2.1, 3.2)); //返回最小的值 System.out.println(Math.min(2.1, 1.2)); //开平方 System.out.println(Math.sqrt(64)); //开立方 System.out.println(Math.cbrt(27)); //返回一个 大于等于0且小于1的随机数 System.out.println(Math.random()); //四舍六入五取偶,当小数大于0.5 就进1,小于0.5就舍去 System.out.println(Math.rint(2.5000001)); System.out.println(Math.rint(9.5)); //N的M次幂,2的3次幂 System.out.println(Math.pow(2, 3));
三 异常机制
3.1 目前碰到过的异常有: 空指针异常 , 下标越界异常, 类型转换异常, 栈内存溢出
3.2 异常是java 种提供的一种识别及响应错误情况的一致性机制。 有效的异常处理能使程序更加健壮。
异常 其实就是错误的一种说法,在java中有一个专门模拟所有异常和错误的类,是所有类的父类
try .......catch..:处理异常,一般用于客户端
throws: 抛出异常,一般用于服务端,
throw : 异常原点
finally: 必须执行的语句
3.3继承体系
分为俩大类: Error 和 Exception
Error :系统内部出错,这类错误 由系统进行处理,程序本身 无需 捕获处理
而Exception :是所有异常的父类,分为 非RuntimeException 和RuntimeException
非RuntimeException :指程序编译时需要捕获或处理的异常
RuntimeException: 指程序编译时 不需要捕获或 处理的异常 一般由程序员粗心导致 如:空指针异常,数组越界,类型转换异常
3.4 常用方法
public String getMessage() :返回关于发生的异常的详细信息,这个消息在Throwable 类的构造函数中初始化了
public void printStackTrace() : 打印toString() 结果和 栈层次到System err 即错误输出流
3.5 Tty.....catch..
高风险代码
只要出错 就执行catch ,try 中剩余代码不在执行
如果没出错,try就可以顺利执行完成,并且 catch不再执行
}catch(异常类型 变量){
处理方案 ..
try{
public static void mmain(String[] args){
try{
//加载对应的文件
FileInputStream fis = new FileInputStream("12");
System.out.println("=========");
}catch(Exception e){
// 打印错误栈帧和信息,一般用于程序员排错
e.printStackTrace();
//获取错误信息,一般用于反馈给客户端
String msg = e.getMessage();
System.out.println(msg);
System.out.println("xaxaxaxx");
}
// 不在终止生命周期执行
System.out.println(2222);
}
.
try{
* 高风险代码;
* }catch(异常类型 变量){
* 处理措施;
* }catch(异常类型 变量 ){
* 处理措施
* }catch(异常类型 变量){
* 处理措施
* }............
* 可以写多个catch 但是从上往下,必须是从子类到父类,或没有继承关系
*
*/
public class Exception_04 {
public static void main(String[] args){
//当try 下边可能会出现多个异常的时候,并且每个异常都对应的解决方案不同的时候
//需要写多个catch进行不同的处理,如果解决方案一致,则只写一个exception即可
try{
new FileInputStream("122");
String stre =null;
System.out.println(stre.trim());
}catch(FileNotFoundException e){
System.out.println("找不到指定文件");
}catch(IOException e){
}catch(NullPointerException e){
System.out.println("不能为空");
}catch(Exception e){
System.out.println("其他异常");
}
}
try{
*
* }catch(异常类型1 | 异常类型2| 异常类型3){
* }
* 同时捕捉多个异常,并且多个异常类型直接用 |隔开,并且不能有继承关系
* 如果有继承关系,则直接写父类即可
* @author 田彪
* @Date 2022年1月17日-下午7:12:39
*/
public class Exception_05 {
public static void main(String[] args){
try{
new FileInputStream("121");
}catch(FileNotFoundException | NullPointerException e){
}
}
3.6 Throws
throws 抛出异常,是一种提醒机制,告诉调用人员,这里可能有错误,使用try解决问题, 只要下家提醒了,要么解决问题,要么抛给上家
public static void main(String[] args){
try{
m1();
}catch(Exception e){
e.printStackTrace();
//解决错误的措施
}
System.out.println("=========");
}
// throws 可以同时抛出多个异常, 用多个 逗号隔开
public static void m1() throws FileNotFoundException,Exception{
m2();
}
public static void m2() throws FileNotFoundException{
m3();
}
public static void m3() throws FileNotFoundException{
new FileInputStream("221");
}
3.7 Finally
finally: 必须执行的语句块 必须和 try 或者try....catch 一起使用 不能单独使用。 只要在System.exit(0); 这一种情况下不执行
public static void main(String[] args){
try{
FileInputStream fis = new FileInputStream("21");
System.out.println(fis);
}catch(IOException e){
e.printStackTrace();
}finally{
System.out.println("必须执行");
}
}
3.8 自定义 异常类!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1 继承 一个已有的异常类, 如果是运行时异常,则继承RuntimeException 反之 继承Exception即可,一般情况下,我们写的一定四编译时异常
2 公共的无参构造
3公共的有参构造,参数似乎错误信息,然后通过super 把错误信息传递到父类



