以下为Java基础核心知识点的系统详解,涵盖语言特性、语法基础、面向对象编程、核心API及高级特性等内容,结合代码示例和注释帮助理解:
🧱 一、Java语言基础
1. 语言特性
- 跨平台性:通过JVM实现“一次编写,到处运行”。
- 面向对象:支持封装、继承、多态三大特性。
- 自动内存管理:JVM的垃圾回收机制(GC)自动回收无用对象。
2. 开发环境搭建
- 安装JDK(推荐JDK 11+)并配置环境变量
JAVA_HOME
。 - IDE选择:IntelliJ IDEA或Eclipse。
3. 基础语法结构
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Java!"); // main方法是程序入口
}
}
📦 二、数据类型与变量
1. 基本数据类型
类型 | 大小 | 示例 |
---|---|---|
int | 4字节 | int age = 25; |
double | 8字节 | double pi = 3.14; |
boolean | 1位 | boolean flag = true; |
2. 引用数据类型
- 类:
String
、自定义类(如Person
)。 - 数组:
int[] numbers = {1, 2, 3}; // 一维数组 String[][] names = {{"Alice", "Bob"}, {"Cindy"}}; // 二维数组
3. 类型转换
- 自动转换:小类型→大类型(
int
→double
)。 - 强制转换:大类型→小类型(需显式声明,可能丢失精度):
double d = 10.5; int i = (int) d; // i = 10
🧩 三、面向对象编程(OOP)
1. 封装(Encapsulation)
- 通过
private
隐藏属性,提供public
方法访问:public class Person { private String name; // 私有属性 public String getName() { return name; } // 公共访问方法 public void setName(String name) { if(name != null) this.name = name; // 数据校验 } }
2. 继承(Inheritance)
- 子类通过
extends
继承父类属性和方法:class Animal { void eat() { System.out.println("Eating..."); } } class Dog extends Animal { // 继承 void bark() { System.out.println("Barking!"); } }
3. 多态(Polymorphism)
- 编译时多态:方法重载(同名不同参):
class MathUtils { int add(int a, int b) { return a+b; } double add(double a, double b) { return a+b; } // 重载 }
- 运行时多态:方法重写(子类覆盖父类方法):
class Cat extends Animal { @Override void eat() { System.out.println("Cat eats fish"); } // 重写 }
4. 抽象类与接口
- 抽象类(
abstract class
):含抽象方法,不可实例化:abstract class Shape { abstract double getArea(); // 抽象方法 }
- 接口(
interface
):定义行为规范,支持多实现:interface Drawable { void draw(); // 默认public abstract } class Circle implements Drawable { public void draw() { System.out.println("Drawing circle"); } }
⚙️ 四、核心API与高级特性
1. 集合框架
接口 | 实现类 | 特点 |
---|---|---|
List | ArrayList | 动态数组,有序可重复 |
Set | HashSet | 无序唯一,基于哈希表 |
Map | HashMap | 键值对存储,键唯一 |
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list.get(0)); // 输出: Java
2. 异常处理
- 异常体系:
- 处理机制:
try { int result = 10 / 0; } catch (ArithmeticException e) { System.out.println("除零错误: " + e.getMessage()); } finally { System.out.println("总会执行"); }
3. 多线程
- 线程创建:
class MyThread extends Thread { public void run() { System.out.println("线程运行中"); } } new MyThread().start(); // 启动线程
- 同步机制:
synchronized void safeMethod() { // 同步代码块 }
4. Java 8+ 新特性
- Lambda表达式:
List<Integer> nums = Arrays.asList(1, 2, 3); nums.forEach(n -> System.out.println(n));
- Stream API:
nums.stream() .filter(n -> n % 2 == 0) .forEach(System.out::println); // 输出偶数
💡 五、内存管理与JVM基础
- 内存区域:
- 堆:存储对象实例(GC主要管理区)。
- 栈:存储局部变量和方法调用栈帧。
- 垃圾回收:
- 分代收集(Young/Old区),标记-清除、复制算法。
🧪 六、开发实践与工具
- 单元测试(JUnit):
@Test public void testAddition() { assertEquals(4, MathUtils.add(2, 2)); }
- 构建工具:
- Maven:依赖管理、项目构建。
- 调试技巧:
- IDE断点调试、日志分析(SLF4J + Logback)。
📊 知识体系关联图
💎 总结
掌握Java基础需深入理解面向对象思想、核心API设计原理及JVM工作机制,并通过项目实践巩固知识点。建议:
- 编码实践:手写数据结构(如链表、哈希表)。
- 源码阅读:研究JDK中
ArrayList
、HashMap
等实现。 - 持续学习:关注Java新版本特性(如Records、Pattern Matching)。
资源推荐:
- 书籍:《Java核心技术 卷I》
- 文档:https://docs.oracle.com/javase/specs/