Java基础知识全面梳理
一、Java语言概述
1.发展历程
- 1995 年由 Sun Microsystems 发布,最初称为 Oak
- 经历多个版本迭代,当前 LTS 版本为 Java 17/21
- 2010 年 Oracle 收购 Sun,主导后续发展
2.语言特性
- 面向对象:封装、继承、多态
- 平台无关性:一次编写,到处运行(通过 JVM 实现)
- 强类型语言:所有变量必须先声明后使用
- 自动垃圾回收:通过 GC 机制管理内存
- 多线程支持:内置对多线程编程的支持
二、基本语法与数据类型
1.基本数据类型(8种)

2.引用数据类型
- 类(Class)
- 接口(Interface)
- 数组(Array)
- 枚举(Enum)
- 注解(Annotation)
三、面向对象编程
1.类与对象

2.继承与多态

3.接口与抽象类

四、流程控制语句
1.条件语句

2.循环语句

五、异常处理
1.异常分类
- 检查型异常(Checked Exception):如 IOException
- 非检查型异常(Unchecked Exception):如 RuntimeException
- 错误(Error):如 OutOfMemoryError
2.异常处理机制

六、集合框架
1.常用集合接口与实现类

2.集合遍历

七、多线性编程
1.创建线程的方式

2.线程同步

八、输入输出流
1.文件操作示例

九、反射机制
1.反射基本用法

十、注解与泛型
1.注解示例

2.泛型示例

Java中易混淆概念深度解析
一、重载(Overload)vs重写(Override)
核心区别:
- 重载:发生在同一个类中,方法名相同但参数列表不同
- 重写:发生在父子类中,方法签名完全相同(访问修饰符可更宽松)
典型示例:

常见误区:
- 重载不关心返回值类型,仅依据参数列表区分
- 重写方法不能抛出比父类更宽泛的异常
二、抽象类VS接口
核心区别:

典型场景:
- 抽象类:模板方法模式(如 HttpServlet)
- 接口:策略模式(如 Comparator 接口)
三、String vs StringBuffer vs StringBuilder
性能对比:

代码示例:

四、final、finally、finalize
功能差异:
-
final:修饰类、方法、变量
- 类:不可被继承(如 String 类)
- 方法:不可被重写
- 变量:赋值后不可修改(常量)
-
finally:异常处理的一部分,无论是否发生异常都会执行

-
finalize:Object 类的方法,垃圾回收前由 JVM 调用(已过时)

五、值传递vs引用传递
Java传递机制:
- Java 只有值传递,传递的是对象引用的副本
- 示例说明:

六、== vs equals()
核心区别:
- ==:比较基本类型的值或对象的引用地址
- equals():默认比较引用地址(Object 类实现),可重写比较内容

七、throws vs throw
使用场景:
throws:声明方法可能抛出的异常

throw:手动抛出异常

八、Collection vs Collections
功能差异:
- Collection:集合框架的根接口(List、Set、Queue 的父接口)
- Collections:工具类,提供静态方法操作集合

九、HashMap vs Hashtable vs ConcurrentHashMap
特性对比:

十、JDK vs JRE vs JVM
包含关系:
- JVM(Java Virtual Machine):执行字节码的虚拟计算机
- JRE(Java Runtime Environment):JVM + 核心类库
- JDK(Java Development Kit):JRE + 开发工具(编译器、调试器等)
理解这些易混淆概念的关键在于结合具体代码示例和使用场景,建议通过编写测试用例验证每个概念的行为差异。对于集合框架、多线程等复杂主题,推荐阅读源码以深入理解其实现原理。


被折叠的 条评论
为什么被折叠?



