Java 核心知识点总结(一)

Java 核心知识点总结

一、异常(Exception)

1. 基本概念

  • 异常:代表程序在运行过程中可能出现的问题。
  • Exception :包含运行时异常 和编译时异常(受检异常)。
  • try-catch:用于捕获并处理异常。
java 复制代码
try {
    // 可能抛出异常的代码
} catch (Exception e) {
    // 异常处理逻辑
}
  • 支持自定义异常,用于表达业务层面的错误信息。

2. 异常处理方案

方案 说明
层层上抛,最外层捕获 底层异常逐层向上抛出,在最外层统一捕获;记录完整异常信息,并向用户返回友好、可理解的提示
捕获后尝试修复 最外层捕获异常后,尝试自动修复或降级处理,保证程序尽可能继续运行

二、泛型(Generics)

1. 泛型类

java 复制代码
修饰符 class 类名<类型变量, 类型变量, ...> { }
  • 类型变量建议使用大写英文字母 ,常用:E、T、K、V 等。

2. 泛型接口

接口同样可以使用类型参数,写法与泛型类类似。

3. 泛型方法

java 复制代码
修饰符 <类型变量, 类型变量, ...> 返回值类型 方法名(形参列表) { }

4. 通配符 ?

  • ? 在使用泛型时代表任意类型。
  • E、T、K、V 用于定义 泛型;? 用于使用泛型时的通配。

5. 泛型上下限

写法 含义
? extends Car 上限 :? 能接收的必须是 Car 或其子类
? super Car 下限 :? 能接收的必须是 Car 或其父类

6. 泛型擦除

  • 泛型仅在编译阶段生效。
  • 编译完成后,泛型信息会被擦除,运行时不再保留具体类型参数。

三、并发修改异常(ConcurrentModificationException)

在遍历集合的同时进行增删操作,可能触发并发修改异常。

解决方案

  1. 普通 for 循环(支持索引的集合)

    • 每删除一个元素后执行 i--;
    • 或倒序遍历后再删除。
  2. 迭代器(Iterator)

    • 使用迭代器遍历,并调用迭代器提供的 remove() 方法删除元素。

注意

  • 增强 for 循环 (for-each)和 Lambda 遍历不能解决并发修改异常问题。
  • 它们只适合纯遍历,不适合在遍历时同时做增删操作。

四、ArrayList 与 LinkedList

ArrayList

特性 说明
底层结构 数组
默认容量 10
扩容规则 第一次增加元素时,扩容到 15
查询效率 高(随机访问快)
使用场景 使用最多,内存占用相对较小

LinkedList

特性 说明
底层结构 链表
增删效率 在已知位置增删较快
查询效率 相对较低(需按节点遍历)

对比小结

  • ArrayList:基于数组,查询快,适合读多写少的场景。
  • LinkedList:基于链表,适合频繁在头尾或已知节点位置增删的场景。
相关推荐
Joy T8 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_5873830011 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·12 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
专注仿真12 小时前
引擎扩展性与集成设计深度剖析:从 14 个扩展点到 DIS→HLA 演进之路
开发语言·算法·仿真引擎·推演引擎
Best-Wishes12 小时前
科来网络分析系统(技术交流版)使用说明书
开发语言·junit·php
代码不停13 小时前
自动化测试(java)
java·开发语言·selenium·自动化
鬼手点金14 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
爱上网的小舟14 小时前
星际战士2启动错误怎么办?5种游戏报错解决方法
开发语言·php
paopaokaka_luck15 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
阿里嘎多学长15 小时前
2026-10-12 GitHub 热点项目精选
开发语言·程序员·github·代码托管