day08:二分查找,正则表达式,Math数学,异常处理,字符串转换基本类型

二分查找
    数组必须有序
    //排序
Arrays.sort(arr);
                                          // 二分查找
int index = Arrays.binarySearch(arr, 6);

static int[] copyOf(int[] original, int newLength) 数组复制
arr2= Arrays.copyOf(arr, 20);

正则表达式
    规则
[ ]  里面内容 任选其一
[a-zA-Z_0-9]   字母 数字  _ 都可以
                        字母 数字 _ 称为单词字符
 [^ ]  除了里面的内容都可以
 .  任意字符
            String email = "123@qq.com.cn.cn.com.vip";
String emailRegex = "[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z_0-9]+)+";
System.out.println(email.matches(emailRegex));
        数量词
        ?   0-1 次
        *   任意次
        +   至少一次

        {n} 恰好n次
        {n,} 至少n次
        {n,m} >=n 并且<=m

Math数学
    //静态常量
//        System.out.println(Math.PI);
 //绝对值
System.out.println(Math.abs(-10));
//四舍五入
    System.out.println(Math.round(3.14f));//3
//向上取整
        System.out.println(Math.ceil(10.1));//11.0
//向下取整
System.out.println(Math.floor(10.1));//10.0
//两个数最大值
System.out.println(Math.max(10,20));//20
//最小值
 System.out.println(Math.min(10,20));//10
//a的b次幂
 System.out.println(Math.pow(2,4));//16.0
//随机小数 [0,1)
System.out.println(Math.random());
//1-100的随机整数
System.out.println(Math.floor(Math.random()*100)+1);

BigInteger/BigDecimal
    大整数运算
        构造方法
                      public BigInteger(String s);
            BigInteger b1 = new BigInteger("12312312131442151515125215151221411231");
BigInteger b2 = new BigInteger("1231231213144215151512521515122141123");
            //加法
        BigInteger add = b1.add(b2);
//减法
        BigInteger subtract = b1.subtract(b2);
//乘法
        BigInteger multiply = b1.multiply(b2);
//除法 整数整除  取商部分
        BigInteger divide = b1.divide(b2);
    精确小数计算
        构造方法
               public BigDecimal(String str)
             BigDecimal b1 = new BigDecimal("0.01");
BigDecimal b2 = new BigDecimal("0.03");
            //加法
        BigDecimal add = b1.add(b2);
 //减法
        BigDecimal subtract = b1.subtract(b2);
 //乘法
        BigDecimal multiply = b1.multiply(b2);
            //除法
//        BigDecimal divide = b1.divide(b2);
/*
          BigDecimal.ROUND_HALF_UP 四舍五入
          BigDecimal.ROUND_UP 向上取整
          BigDecimal.ROUND_DOWN 向下取整
*/
        BigDecimal divide = b1.divide(b2, 2, BigDecimal.ROUND_DOWN);

字符串与基本类型转换
    //String --->int
        int i = Integer.parseInt("10");
    //int --- String
        String s = 10 + "";
    //Int的值在byte范围之内,返回值就是true.
                   (-128到127之间)
Integer in5 = 50; //new Integer(50);
Integer in6 = 50;//in6 =in5;
System.out.println(in5 == in6); //true

异常Exception
    Throwable
          Error    错误  不能处理
          Exception 异常 编译时异常  编译时 就报错 必须处理 不处理代码 编译不通过
          RuntimeException 运行时异常 编译时 不报错 运行时才报错
        编译时异常
           Exception及其子类   编译时就报错 必须处理 不处理代码无法运行
        运行时异常
         RuntimeException及其子类  编译时 不报错 运行时 才报错  可以处理 也可以不处理 推荐不处理
          因为对于运行时异常来说 基本上都是代码写的有问题 需要改代码
    异常的第一种处理方式
        try{
        可能出现异常的代码
     }catch(异常的类名  变量名){
         打印异常的信息
     }catch(异常的类名 变量名){

}..
            try{
     }catch(){
     }finally{
        无论是否有异常 无论 是否捕获了异常  finally中的内容 一定会被执行
     }
        多catch处理异常 有没有顺序
           如果多个异常之间没有继承关系 没有顺序
           如果有继承关系 有顺序   小的在前 大的在后
    异常处理的第二种方式 
        声明异常
            public static void method(int i) throws FileNotFoundException, ParseException  {
        if(i == 0){
            throw new FileNotFoundException("文件没找到");
        }
        if(i == 1){
            throw new ParseException("",10);
        }

        System.out.println("代码正常执行...");
    }
        throw 异常的对象    抛出异常 在方法内使用
        throws 异常的类名  声明异常 在方法的声明上使用
    异常后方法重写的注意事项
         1.父类方法抛异常 子类方法能不能抛异常?
                      可以不抛
                      也可以抛异常 但是 抛出的异常 必须和父类方法抛出的异常相同 或者是其子类异常
        2.父类方法不抛异常 子类方法能不能抛异常?
                      子类重写方法不能抛异常 如果子类方法中有异常 必须try catch
    自定义异常
         继承Exception 或者RuntimeException
         空参 带参

2.都需要熟记.常复习

3.心情开心充实

4.集合的总结.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值