算法、正则表达式、异常

一、算法

解决某个实际问题的过程和方法

1、排序算法

冒泡排序

●每次从数组中找出最大值放在数组的后面去。
实现冒泡排序的关键步骤分析
●确定总共需要做几轮:数组的长度-1.
●每轮比较几次:
●当前位置大于后一个位置则交换数据

import java.lang.reflect.Array;
import java.util.Arrays;

public class algorithm {
    public static void main(String[] args) {
        int[] arr = {1,5,3,2};
        for (int i = 0; i < arr.length - 1; i++) {
            int k;
            for (int j = 0; j < arr.length - i -1; j++) {
                if(arr[j] > arr[j+1]){
                    k = arr[j];
                    arr[j]= arr[j+1];
                    arr[ j+ 1] = k;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}
选择排序

●每轮选择当前位置,开始找出后面的较小值与该位置交换
选择排序的关键
●确定总共需要选择几轮:数组的长度-1.
●控制每轮从以前位置为基准,与后面元素选择几次。

import java.lang.reflect.Array;
import java.util.Arrays;

public class algorithm {
    public static void main(String[] args) {
        int[] arr = {1,5,3,2};
        for (int i = 0; i < arr.length - 1; i++) {
            int k;
            for (int j = i + 1; j < arr.length ; j++) {
                if(arr[i] > arr[j]){
                    k = arr[i];
                    arr[i]= arr[j];
                    arr[j] = k;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

学习算法的技巧
1、先搞清楚算法的流程。
2、直接去推敲如何写代码。

2、查找算法

二分查找(折半查找)
public class algorithm1 {
    public static void main(String[] args) {
        int[] arr = {7, 9 ,23,28,89,97,211,541,4500,8600};
        System.out.println(binarySearch(arr, 89));
    }
    public static int binarySearch(int[] arr, int data){
        int left = 0;
        int right =arr.length - 1;
        while (left <= right){
            int m = (left + right)/2;
            if (data < arr[m]) {
                right = m -1;
            }else if(data > arr[m]){
                left = m +1;
            }else{
                return m;
            }
        }
        return -1;
    }
}

二、正则表达式

就是由一些特定的字符组成,代表的是一个规则。

作用一:用来校验数据格式是否合法

作用二:在一段文本中查找满足要求的内容.

三、异常

异常就是代表程序出现的问题

异常的体系

Error:代表的系统级别错误(属于严重问题),也就是说系统一旦 出现问题, sun公司会把这些问题封装成Error对象给出来,
说白了,Error是给sun公司自己用的,不是给我们程序员用的,因此我们开发人员不用管它。
Exception:叫异常,它代表的才是我们程序可能出现的问题,所以,我们程序员通常会用Exception以及它的孩子来封装程序出现的问题。
运行时异常: RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常( 如:数组索引越界异常)
编译时异常:编译阶段就会出现错误提醒的。( 如:日期解析异常)

抛出异常(throws )

●在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理。
方法throws异常1,异常2,异常3 .{
        ...
}

捕获异常(Try..catch)

●直接捕获程序 出现的异常。
try{
        //监视可能出现异常的代码!
}catch(异常类型1变量){
        //处理异常
}catch(异常类型2变量){
        //处理异常
}...

自定义异常

●Java无法为 这个世界上全部的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那就需要自己来定义异常类了。

异常的处理

抛出异常和捕获异常的写法优化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值