JAVA进阶-包装类,二分查找,冒泡排序,异常

day05

基本数据类型包装类

  • image-20220617183041104

  • Integer获得对象

    • 该对象中包装了一个基本数据类型int 的值

    • Integer i = Integer.valueOf(200);
      Integer i = Integer.valueOf("200");
      
    • image-20220617184243501

  • Integer自动装箱和自动拆箱

    • 自动装箱:自动调用valueof()方法把基本数据类型转换为对应的包装类类型。

      • //装箱:把一个基本数据类型 变成对应的包装类。
        //自动:自动调用valueof()方法。
        Integer i1 = 100;
        Integer i1 = new Integer(100);
        
    • 自动拆箱:把一个包装类型 变成对应的基本数据类型

      • //把一个包装类型 变成对应的基本数据类型
        int i2 = i1;
        
      • Integer i3 = 100;	//自动装箱机制
        i3 += 200;			//会把i3这个对象变成基本数据类型100.
        					//100+200=300
        					//把基本数据类型300再次自动装箱变成Integer对象赋值给i3
        //细节 null 不能复制给基本数据类型
        //以后计算时可以加上一个if
        
        
    • 细节

      • image-20220617190919597
  • Integer的成员方法

    • image-20220617191040138

    • String s1 = "100";
      int i2 = Integer.parseInt(s1);
      
    • image-20220617191448583

  • 面试题

    • image-20220620205109276

    • image-20220621085446514

数组的高级操作

二分查找
  • 二分查找 相当于每次去掉一半的查找范围
  • 步骤
    • image-20220617205519175

冒泡排序

  • //排序后:
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + " ");
    }			
    方式二:冒泡排序
    int[] arr = {4, 1, 5, 3, 2};
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + " ");
    }
    System.out.println();
    for(int i=0;i<arr.length-1;i++){  //循环四次
        for(int j=0;j<arr.length-1-i;j++){//分别循环4,3,2,1
            if(arr[j]>arr[j+1]){
                int temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + " ");
    }
    System.out.println();
    

递归

  • image-20220619131409566
  • 递归求阶乘
    • image-20220619131748976

Arrays

  • image-20220619132458708

  • int[] arr = {1,2,3,4,5,6,7,8,9}
    Arrays.toString(arr);
    Arrays.sort(arr);
    Arrays.binarySerach(arr,9);
    

异常

  • 异常概述

    • image-20220619133050191
    • image-20220619133225787
  • JVN默认处理方案

  • image-20220619133727887

  • 异常处理方式

    • throws

      • throws 异常类名;
        //方法声明异常,交给调用者处理,调用者也声明异常最终交给虚拟机处理。
        
      • 如果声明的是一个运行时异常,那么声明的代码可以省略

      • 如果声明的是一个编译时异常,那么声明的代码必须手写

    • throw

      • throw new 异常();
        //在方法内的,表示当前代码手动抛出一个异常,下面的代码不用在执行了。
        
      • image-20220619135043468

    • 两者的区别

      • image-20220619134701853
    • try…catch…

      • try{
        	可能出现异常的代码;
        }catch(异常类名 变量名){
        	异常的处理代码
        }
        
        //好处:可以让程序继续往下运行
        
      • image-20220619135357077

      • 常见的问题

        • 如果try中没有遇到问题,怎么执行
          • try里面的代码执行,不会执行catch里面的代码
        • 如果try中遇到了问题,那么try下面的代码还会执行嘛
          • 直接跳转到catch语句中,try下面的代码就不会执行了
          • catch里面的代码执行完毕后,继续执行下面的代码
        • 如果出现的问题没有被捕获,那么程序如何运行?
          • 那么try…catch相当于没有写,那么也就是自己没有处理。
          • 默认交给虚拟机处理
        • 同时有可能出现多个异常怎么处理
          • 出现多个异常,那么写多个catch就可以了
          • 如果多个异常之间存在子父类关系。那么父类一定要写在下面
          • 针对每种不同的异常可能会有不同的处理结果
    • e.printStackTrace();

      • 把异常的错误信息打印输出在控制台(字体为红色)
    • 自定义异常

      • 继承后要写空参构造和无参构造

      • 出现多个异常,那么写多个catch就可以了

        • 如果多个异常之间存在子父类关系。那么父类一定要写在下面
        • 针对每种不同的异常可能会有不同的处理结果
    • e.printStackTrace();

      • 把异常的错误信息打印输出在控制台(字体为红色)
    • 自定义异常

      • 继承后要写空参构造和无参构造
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值