部分常用API 以及 Java中的异常机制

部分常用API 以及 Java中的异常机制,第1张

部分常用API 以及 Java中的异常机制

BigInteger:

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

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

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

 常用方法

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。

阶乘数较大的时候使用 :

public static void main(String[]args){
		System.out.println(test(10));
		System.out.println(test1(120));
		System.out.println(Long.MAX_VALUE);
	}
	public static long test(long n){
		long result=1;
		for(int i=1;i<=n;i++){
			result*=i;
		}
		return result;
	}
	public static BigInteger test1(long n){
		BigInteger result=new BigInteger("1");
		for(int i=1;i<=n;i++){
			result=result.multiply(new BigInteger(i+""));
		}
		return result;
	}

 

public static void main (String[]args){
		//必须传入字符串
		BigInteger v1=new BigInteger("123");
		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.multiply(v3);
		System.out.println(result);
		//  / 除
		result=v2.divide(v3);
		System.out.println(result);
		//% 取余
		result=v2.remainder(v3);
		System.out.println(result);

Math 的一些常用API

// 绝对值
		System.out.println(Math.abs(-3));
		// 向上取整 , 有小数 就进位
		System.out.println(Math.ceil(2.000000001));
		// 向下取整 , 舍弃小数
		System.out.println(Math.floor(2.999999999999));
		// 返回最大的值
		System.out.println(Math.max(2.3, 4.1));
		// 返回最小的值
		System.out.println(Math.min(2.3, 4.1));
		// 开平方
		System.out.println(Math.sqrt(16));
		// 开立方
		System.out.println(Math.cbrt(8));
		// 返回一个 大于等于0 且小于 1 的随机数
		// 本质就是Random的nextDouble方法
		System.out.println(Math.random());
		// 四舍六入五取偶 , 当小数大于0.5  就进1 , 小于 0.5 就舍弃,当小数为0.5整的时候,取偶数
		// 2.5  = 2 , 3.5 = 4 , 2.50001 = 3 
		System.out.println(Math.rint(2.50001));
		System.out.println(Math.rint(9.5));
		// N的M次幂 ,  2的3次幂
		System.out.println(Math.pow(2, 3));

异常机制:

 异常  就是错误的一种说法 在java中有一个专门模拟所有异常和错误的类 Throwable是所有异常类的父类
 try...catch...:处理异常  一般用于客户端 
 throws  抛出异常 一般用于服务端
 throw   异常源点
 finally 必须执行的语句  不能单独使用 必须和 try 或 try..catch..一起使用  
 只有一种不执行情况  System.exit(0); 强制退出语句;

 try...catch...:处理异常  一般用于客户端 

try{
       高风险代码
      只要出错 就执行catch,try 中剩余代码不再执行
     如果没出错,try就可以顺利执行完成 并且catch不再执行
  }catch(异常类型  变量){
       处理方案;
  }

try{
 *    高风险代码;
 * }catch(异常类型 变量){
 *    处理措施;
 * }catch(异常类型 变量){
 *     处理措施;
 * }catch(异常类型  变量){
 *    处理措施
 * }

public static void main(String[]args){
		//当try下面可能会出现多个异常的时候 并且每个异常对应的解决方案不同的时候 需要写多个catch进行不同的处理
		//如果解决方案一致 则只写一个exception 即可
		try{
			new FileInputStream("123");
			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 ...){
 * 
 * }
 * 
 * 同时捕捉多个异常 并且多个异常类直接用 | 隔开 并且 不能有继承关系
 * 如果有继承关系  则直接写父类即可

public static void main(String[]args){
		try{
			new FileInputStream("123");
			
		}catch(FileNotFoundException|NullPointerException e){
			//TODO:handle exception

 java 1.7新特征 自动关闭资源
 try(开启资源语句 ;){
              
             高风险代码
              }catch (异常类型 变量){
              处理方案
              }

throws

throws  抛出异常 该方式并不会处理理解 一种提醒机制 告诉调用人员 这里可能会有错误
 * 如果知道如何解决 则使用try解决问题 否则通过throws抛出问题
 * 只要你的下家提醒了 要么你解决 要么抛给上家

Finally

finally 必须执行的语句块 不能单独使用 必须和 try或者try..catch..一起使用
 * finally 只有一种不执行情况 遇到 System.exit(0);

public static void main(String[]args){
	try{
		FileInputStream fis=new FileInputStream("123");
		System.out.println(fis);
	}catch(IOException e){
		e.printStackTrace();
	}
	finally{
		System.out.println("必须执行");

方法覆写 不能比原方法有更宽泛的异常
  子类方法抛出的异常 不能大于父类异常 也就是小于等于 父类异常
               要么和父类抛出的异常一致 要么是父类抛出的异常的子类 或者直接不抛出异常

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5708169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存