面向对象高级4

1.数组的高级操作

1.1二分查找(折半查找):

目的: 找元素

前提: 数组的元素是排好序的

1.2冒泡排序

目的: 排序 (相邻两个比较, 大的往右边排)

1.3Arrays的工具类

  • static int binarySearch(double[] a, double key)    二分查找!!!
  • static void sort(byte[] a)    对数组进行排序
  • static String toString(数组)

2.递归

现象: 方法调用自己的现象我们成为递归 作用: 类似于循环!!!!!!

注意事项: 递归有出口, 否则会报StackOverFlowError ----> 栈内存溢出

建议 能用循环就用循环解决, 不能循环在考虑递归!!!!!!

用途:主要解决不确定循环层数的这种需求!!!!!!

2.1BigInteger(大整数)

构造 BigInteger(String val)

作用 用来计算超级大的整数, 原理是底层基于字符串, 么有长度限制!!!!!

功能

  1. BigInteger add(BigInteger augend)     一个BigInteger和另外一个BigInteger的对象进行相加, 返回新的BigDecimal,老的不变!!!!
  2. BigInteger subtract(BigInteger subtrahend)    一个BigInteger和另外一个BigInteger的对象进行相减, 返回新的BigDecimal,老的不变!!!! 
  3. BigInteger multiply(BigInteger multiplicand)   一个BigInteger和另外一个BigInteger的对象进行相乘, 返回新的BigDecimal,老的不变!!!!
  4. BigInteger divide(BigInteger divisor)   一个BigInteger和另外一个BigInteger的对象进行相除, 返回新的BigDecimal,老的不变!!!!  必须能够被除尽才能使用该方法!!!!!

3.异常

jvm如何处理异常

1.打印了异常的信息  

异常的类型        异常的原因        异常的位置

2.终止了程序

3.1自己处理异常

1.将异常抛给调用者处理!!!

通过 throws关键字见异常声明到方法的声明上面, 告知调用者你可能产生的异常, 起到警示的作用!!!!!!!!!

格式:  throws 异常类名1,异常类名2 ......  (可以声明多个异常类型)

2.捕获异常

try{
	//可能会出现问题的代码
	//以及出现问题后不需要执行的代码

}catch(异常类型 异常名){
	//出现问题后的提示

}....
catch(异常类型 异常名){
	//出现问题后的提示

}

作用: 不让程序终止!

流程:catch是中国好备胎, 当try里面出现问题后, 会根据异常类型从上往下匹配catch,一旦匹配成功执行对应的catch的语句, 然后try语句执行完毕 

注意事项:

  • 1.一个try可以配很多catch
  • 2.catch的异常类型如果有子父类关系, 父类的异常类型应该定义在下面, 否则会报错
  • 3.如果catch都不匹配, jvm帮我们处理, 但是jvm只会处理运行时异常 ,如果编译时必须得处理
  • 快捷键:ALT+CTRL +  T

3.2throw和throws的区别

throw:

  • 作用: 制造异常, 终止方法      
  • 位置: 在方法里面用的
  • 跟的异常对象, 只能跟一个
  • 使用场景: 一般用于校验参数的合法性

throws:

  • 作用:声明异常, 告诉调用者方法可能产生的异常
  • 位置: 方法的声明上
  • 跟的异常类型, 可以跟多个!!!

3.3异常的方法

观察发现所有的异常都是类名不一样而已, 功能都是从父类中继承下来,所有我们学习Throwable的功能即可

void printStackTrace(),将异常的信息打印到控制台中 异常的类型 异常的原因 异常的位置

3.4自定义异常

本质:就是让异常类名更具备见名知意的效果!!!!!

步骤:

1.定义一个类去继承Exception或者RuntimeException, 然后起一个见名知意的名字即可

2.根据父类构造生成自己的构造即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值