1.BigInteger
1.1概述
1、Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。
2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供
所有 Java 的基本整数 *** 作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位 *** 作以及一些其他 *** 作。
1.2常用方法和使用
BigDecimal result=v2.add(v3); +:add -:subtract *:multiply
System.out.println(result); /:divide %:remainder
2.Math
2.1概述
java.lang.Math提供了一系列静态方法用于科学计算。其方法的参数和返回
值类型一般为double型。
2.2常用方法和使用
System.out.println(Math.abs(-3));
abs:绝对值 ceil:向上取整 floor:向下取整
sqrt:开平方 cbrt:开立法 random:大于等于0,小于1的随机数
rint:四舍六入五取偶 pow(n,m)n的m次幂
System.out.println(Math.max(2.5, 4.1));
max:最大值 min:最小值
3.异常机制
3.1碰到过的异常
1.空指针异常
2.下标越界异常
3.类型转换异常
4.栈内存溢出
try…catch…:处理异常,一般用于客户端
throws:抛出异常,一般用于服务端
throw:异常源点
finally:必须执行的语句
3.2继承体系
3.3Error
系统内部错误,这类错误由系统进行处理,程序本身无需捕获处理。
比如:OOM(内存溢出错误)、VirtualMachineError(虚拟机错误)、StackOverflowError(堆栈溢出错误)等,一般发生这种情况,JVM会选择终止程序。
3.5Exception
3.5.1概述
Exception是所有异常类的父类。分为非RuntimeException和RuntimeException 。
- 非RuntimeException
指程序编译时需要捕获或处理的异常,如IOException、自定义异常等。属于checked异常。RuntimeException
指程序编译时不需要捕获或处理的异常,如:NullPointerException等。属于unchecked异常。一般是由程序员粗心导致的。如空指针异常、数组越界、类型转换异常等。
3.5.2 常用方法
public String getMessage():返回关于发生的异常详细信息,这个消息在Throwable类的构造函数中初始化了
public void printStackTrace():打印toString()结果和栈层次到System.err,即错误输出流
3.5.3 Try…catch…
try{
高风险代码
只要出错,就执行catch,try中剩余代码不在执行
如果没出错,try就可以顺利执行完成,并且catch不再执行
}catch(异常类型 变量){
处理方案;
}
try{
高风险代码
}catch(异常类型 变量){
处理措施
}catch(异常类型 变量){ 可以写多个catch,但是从上到下,必须是从子类到父类或者
处理措施 没有继承
}catch(异常类型 变量){
处理措施
}……
try{
}catch(异常类型1|异常类型2|异常类型3……){ 同时捕捉多个异常,并且多个异常类型直接用| 隔开,不能有继承关系如果有继承,则直接写父类即可
}
3.5.4 Throws
抛出异常,该方式不会处理问题,一种提醒机制,如果知道如何解决,这有try解决问题,否则通过throws抛出问题
3.5.5Finally
finally:必须执行的语句块,不能单独使用,必须和try或者try…catch…一起使用
finally:只要一种不执行的情况,那就是System.exit(0);
finally中有return不执行,编译后把return去掉
3.5.6不能有更宽泛的异常
方法覆写,不能比原方法有更宽泛的异常
子类方法抛出的异常,不能大于父类异常,也就是小于等于父类异常均可
要么和父类抛出的异常一致,要么是父类抛出异常类的子类,或者,直接不抛出异常
3.6 自定义异常类
3.6.1需求
完成用户登陆功能
传入用户信息,校验用户名和密码是否正确,如果正确则返回该用户所有信息,反之则提示错误信息
3.3.2 异常类
1 继承一个已有的异常类
如果是运行时异常,则继承RuntimeException 反之则继承 Exception即可
一般情况下,我们写的 一定是编译时异常
2 公共的无参构造
3 公共的有参构造,参数是错误信息,然后通过super 把错误信息传递到父类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)