常见异常整理分类和举例

1,常见异常

算数异常:ArithmeticException

输入不匹配异常:InputMismatchException

类型转换异常:ClassCastException

数组越界异常:ArrayIndexOutofBoundstException

空指针异常:NullPointertException

非法参数异常:IllegalArgumentstException

下标越界异常:IndexOutOfBoundtException

文件未找到异常:FileNotFoundException

输入输出异常:IOException

数据库异常:SQLException

数据格式化异常:NumberFormatExceptio

二,异常的捕捉

 我们通常用try  catch来捕捉

三,finally的效果

ffinally无论是否报错,肯定都会执行后面的语句

在无返回值方法中,return不会中断对finally的访问,return会在finally的访问后执行

在有返回值的方法中,如果finally中有return值,那么一定会执行finally的return

如果finally中没有return,也有return后再访问finally

 

四,异常的体系结构;

throwable---Error

----Exception -----Unhandled Exception(Checked异常)

------RuntimeException(运行时异常)

处理异常

try{}catch(异常类型 e){}finally{}//这里的e为形参

throw和throws

throw用来生成异常对象,一般要和throws搭配使用

throws是用来声明异常类型

自定义异常类型

先继承已知的异常类型,一般是Exception或者RuntimeException

然后用super来引用父类的有参构造(super.massage)

<think>好的,用户之前让我详细梳理了蓝桥杯Java C组所需的Java基础知识,现在他们又进一步要求“给出具体的用法并举例”。我需要仔细分析用户的需求,看看他们到底需要什么。 首先,用户可能已经了解了知识点的大纲,现在需要具体的代码示例来加深理解。他们可能在准备比赛时,需要实际的例子来参考,以便更好地掌握每个知识点的应用。比如,在基础语法部分,他们可能需要看到变量声明、循环结构的具体写法,以及面向对象编程中的类与对象的实例。 接下来,我需要回顾之前的回答结构,确保每个知识点都有对应的代码示例。例如,在讲解数组时,不仅要说明如何声明数组,还要展示如何初始化、遍历以及常用操作。同样,在集合框架部分,需要比较ArrayListLinkedList的不同,并展示它们的用法。 还要注意用户提到的具体用法,这可能包括语法结构、常见错误避免以及实际应用场景。例如,异常处理中的try-catch块,用户可能需要知道如何捕获特定异常,并在finally中释放资源。此外,输入输出部分,ScannerBufferedReader的区别及使用场景也需要举例说明。 另外,用户可能对算法数据结构部分特别关注,尤其是蓝桥杯常见的题型,比如排序、递归、动态规划等。需要提供这些算法的Java实现示例,比如快速排序的代码,或者动态规划解决斐波那契数列的例子。 还要考虑代码的正确性简洁性,确保示例能够直接运行,没有语法错误。比如,在讲解字符串处理时,使用StringBuilder来展示高效的字符串拼接,对比String的直接拼接,说明为什么在循环中使用StringBuilder更优。 同时,需要注意蓝桥杯竞赛中的高频考点,比如大数处理中的BigIntegerBigDecimal,用户可能需要具体的运算示例,如大数相加或相乘的方法调用。日期计算部分,使用Calendar类来推算日期,这也是真题中常见的题型,需要给出具体的代码示例。 最后,备考建议部分,用户可能需要具体的策略,比如推荐的刷题平台调试技巧。可以补充一些实际的调试例子,比如在递归函数中添加输出语句来跟踪执行流程。 总结来说,用户需要的是将之前的知识点转化为实际的代码示例,帮助他们理解应用这些知识点解决实际问题。需要确保每个示例都紧扣知识点,简洁明了,并突出蓝桥杯考试中的常见应用场景。同时,要注意代码格式的正确性,避免出现语法错误,并尽可能覆盖各个重要模块,确保用户能够全面复习。</think>以下是蓝桥杯Java C组核心知识点的 **具体用法及代码示例**,按模块分类整理: --- ### 一、基础语法 #### 1. 变量与运算符 ```java // 位运算示例:判断奇偶 int num = 5; if ((num & 1) == 1) { // 等价于 num % 2 != 0 System.out.println("奇数"); } // 三目运算符简化代码 int a = 10, b = 20; int max = (a > b) ? a : b; // max = 20 ``` #### 2. 流程控制 ```java // switch处理多分支(JDK14+支持箭头语法) int day = 3; switch (day) { case 1 -> System.out.println("周一"); case 3 -> System.out.println("周三"); // 输出"周三" default -> System.out.println("无效"); } // 增强for循环遍历数组 int[] arr = {1, 3, 5}; for (int x : arr) { System.out.print(x + " "); // 输出1 3 5 } ``` --- ### 二、数组与字符串 #### 1. 数组操作 ```java // 二维数组初始化与遍历 int[][] matrix = {{1,2}, {3,4}}; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { System.out.print(matrix[i][j] + " "); } } // Arrays工具类排序 int[] nums = {5, 2, 7}; Arrays.sort(nums); // nums变为[2,5,7] ``` #### 2. 字符串处理 ```java // StringBuilder高效拼接 StringBuilder sb = new StringBuilder(); sb.append("Hello").append(" ").append("蓝桥杯"); // Hello 蓝桥杯 System.out.println(sb.toString()); // 字符串分割 String str = "apple,banana,orange"; String[] fruits = str.split(","); // 分割为["apple", "banana", "orange"] ``` --- ### 三、面向对象编程 #### 1. 类与继承 ```java // 定义父类Animal class Animal { public void eat() { System.out.println("动物进食"); } } // 子类Dog继承并重写方法 class Dog extends Animal { @Override public void eat() { System.out.println("狗吃骨头"); // 多态体现 } } // 测试代码 Animal myDog = new Dog(); myDog.eat(); // 输出"狗吃骨头" ``` #### 2. 接口与实现 ```java // 定义接口 interface Flyable { void fly(); } // 实现接口 class Bird implements Flyable { @Override public void fly() { System.out.println("鸟儿飞翔"); } } // 使用接口 Flyable obj = new Bird(); obj.fly(); // 输出"鸟儿飞翔" ``` --- ### 四、集合框架 #### 1. List与Map ```java // ArrayList遍历 List<Integer> list = new ArrayList<>(); list.add(10); list.add(20); for (Integer num : list) { System.out.println(num); // 输出10 20 } // HashMap键值对操作 Map<String, Integer> map = new HashMap<>(); map.put("apple", 3); map.put("banana", 5); System.out.println(map.get("apple")); // 输出3 ``` #### 2. 集合排序 ```java // 自定义排序(按字符串长度) List<String> words = Arrays.asList("Java", "C++", "Python"); Collections.sort(words, (s1, s2) -> s1.length() - s2.length()); // 排序后顺序:C++ → Java → Python ``` --- ### 五、输入输出 #### 1. 标准输入 ```java // 使用Scanner读取输入 Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 读取整数 String s = sc.next(); // 读取字符串(空格分隔) // 使用BufferedReader高效读取 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine(); // 读取一行 ``` #### 2. 文件读写 ```java // 写入文件 try (FileWriter writer = new FileWriter("test.txt")) { writer.write("Hello 蓝桥杯"); } catch (IOException e) { e.printStackTrace(); } ``` --- ### 六、算法与数据结构 #### 1. 快速排序 ```java void quickSort(int[] arr, int low, int high) { if (low < high) { int pivot = partition(arr, low, high); quickSort(arr, low, pivot - 1); quickSort(arr, pivot + 1, high); } } int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, high); return i + 1; } ``` #### 2. 动态规划(斐波那契) ```java int fib(int n) { if (n <= 1) return n; int[] dp = new int[n + 1]; dp[0] = 0; dp[1] = 1; for (int i = 2; i <= n; i++) { dp[i] = dp[i - 1] + dp[i - 2]; } return dp[n]; } ``` --- ### 七、高频考点示例 #### 1. 大数计算(BigInteger) ```java BigInteger a = new BigInteger("123456789"); BigInteger b = new BigInteger("987654321"); BigInteger sum = a.add(b); // 1111111110 BigInteger product = a.multiply(b); // 121932631137021795 ``` #### 2. 日期计算(Calendar) ```java Calendar cal = Calendar.getInstance(); cal.set(2023, Calendar.MARCH, 15); // 月份从0开始(0=1月) cal.add(Calendar.DAY_OF_MONTH, 10); // 加10天 System.out.println(cal.getTime()); // 输出2023-03-25 ``` --- 通过结合代码示例理解知识点,再通过蓝桥杯真题(如“数列求值”“人物相关性分析”)进行实战训练,可快速提升解题能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值