标题BigDecimal 和 BigInteger
精度极高
***//n!***
public static void main(String[] args) {
long result = m1(20);
System.out.println(result);
BigDecimal result1 = m2(100);
System.out.println(result1);
}
public static long m1(int n) {
if (n <= 1) {
return 1;
}
return n * m1(n - 1);
}
public static BigDecimal m2(int n) {
if (n <= 1) {
return new BigDecimal(1);
}
return new BigDecimal(n).multiply(m2(n - 1));
}
Math
- Math 提供了科学技算和基本的数字操作方法
- 全是静态方法,类名调用即可,并且Math在java.long下,不需要导包
public static void main(String[] args) {
//abs 绝对值
System.out.println(Math.abs(-23));
//ceil 向上取整 小数大于0 就进位
System.out.println(Math.ceil(1.000001));
//floor 向下取整 舍小数
System.out.println(Math.floor(1.99999));
//sqrt 平方根
System.out.println(Math.sqrt(4));
//cbrt 立方根
System.out.println(Math.cbrt(8));
//random 随机数 生成大于等于0.0 且小于1.0
//greater than or equal to {@code 0.0} and less than {@code 1.0}
System.out.println(Math.random());
//rint 四舍五入
//银行算法,四舍六入 五取偶数
System.out.println(Math.rint(2.4));
System.out.println(Math.rint(2.5));
System.out.println(Math.rint(3.5));
//pow N次方
System.out.println(Math.pow(2, 3));
}
Exception
-
异常:
-
是java提供的识别错误的响应机制,可以使程序更加见状 易于调试
-
异常是错误的另一种说法
-
java中 有个专门模拟所有异常的类,Throwable,是异常类的祖类,所有的异常类 都是它的子类
-
如果程序出现了异常 会终止程序生命周期执行,所以需要进行处理
-
异常处理形式
-
try...catch... :解决 异常,一般用在客户端(调用处)
-
throws :抛 异常,一般用在类库端(服务段,被调用的地方)
-
throw :异常源,制作异常,创建异常对象
public static void main(String[] args) {
try {
new FileInputStream("");
String s = null;
s.equals("");
//可以写多个catch 捕捉多个异常,进行不同的处理
//多个异常类型之间不能有继承关系,否则就必须是从子类到父类
} catch (FileNotFoundException e) {
System.out.println("找不到文件");
} catch (NullPointerException e) {
System.out.println("空指针");
}
}