Java 核心知识点总结(一)

Java 核心知识点总结

一、异常(Exception)

1. 基本概念

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

2. 异常处理方案

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

二、泛型(Generics)

1. 泛型类

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

2. 泛型接口

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

3. 泛型方法

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

4. 通配符 ?

  • ? 在使用泛型时代表任意类型
  • ETKV 用于定义 泛型;? 用于使用泛型时的通配。

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:基于链表,适合频繁在头尾或已知节点位置增删的场景。
相关推荐
其实防守也摸鱼2 小时前
软件安全与漏洞--软件安全编码与防御技术理论题库
开发语言·网络·安全·网络安全·软件安全·软件安全与漏洞
x138702859572 小时前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio
iCxhust2 小时前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理
凡人叶枫2 小时前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
技术小结-李爽2 小时前
【工具】Maven的下载、安装、使用
java·maven
极创信息2 小时前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
努力成为AK大王2 小时前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
云烟成雨TD2 小时前
Agent Scope Java 2.x 系列【10】技能(Skill)
java·人工智能·agent
摇滚侠2 小时前
SpringMVC 入门到实战 DispatcherServlet 源码解读 92-95
java·后端·spring·maven·intellij-idea