JavaSE全套基础知识详解(万字长文)
JavaSE 是 Java 学习之路的地基,掌握它意味着你具备了开发 Java 应用、Web 项目、Spring 框架的基本能力。本文将全面系统地讲解 JavaSE 的核心知识点,带你从零构建 Java 编程思维。
✅ 一、Java 简介
语言特点:
面向对象(OOP)跨平台(一次编译,处处运行)安全性高(有 JVM 沙箱机制)丰富的类库(JDK 提供了大量 API)
Java 运行机制:
编写 .java 文件使用 javac 编译生成 .class 字节码JVM 加载 .class 文件并运行
✅ 二、Java 基础语法
1. 基本数据类型
类型关键字占用字节示例整型int442浮点float/double4/83.14字符char2(UTF-16)‘A’布尔boolean1(逻辑)true2. 变量与常量
int age = 25;
final double PI = 3.14159;
final 修饰常量,表示不可更改
3. 运算符
算术运算:+ - * / %比较运算:== != > < >= <=逻辑运算:&& || !
int a = 10, b = 3;
System.out.println(a / b); // 3
System.out.println(a % b); // 1
System.out.println(++a); // 11
✅ 三、流程控制语句
1. 分支语句
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
2. switch语句
switch (day) {
case 1 -> System.out.println("Monday");
case 2 -> System.out.println("Tuesday");
default -> System.out.println("Unknown");
}
3. 循环语句
for (int i = 0; i < 5; i++) { ... }
while (x > 0) { ... }
do { ... } while (x > 0);
break:跳出当前循环continue:跳过当前迭代
✅ 四、方法与参数
1. 方法定义
public static int add(int a, int b) {
return a + b;
}
static 表示静态方法可变参数:void print(String... args)
2. 方法重载(Overload)
void say() {}
void say(String name) {}
✅ 五、面向对象编程(OOP)
1. 类与对象
class Car {
String brand;
void drive() {
System.out.println(brand + " is running...");
}
}
Car c = new Car();
c.brand = "BMW";
c.drive();
2. 封装
private 修饰属性 + getter/setter
3. 继承
class Animal { void eat() {} }
class Dog extends Animal { void bark() {} }
4. 多态
Animal a = new Dog(); // 向上转型
a.eat(); // 编译时看父类,运行时看子类(动态绑定)
5. 抽象类 & 接口
abstract class Shape {
abstract double area();
}
interface Flyable {
void fly();
}
✅ 六、数组与集合
1. 数组
int[] arr = {1, 2, 3};
for (int i : arr) {
System.out.println(i);
}
2. 集合框架(Collection)
类型说明List有序、可重复Set无序、不可重复Map键值对结构List
Set
Map
3. 遍历集合
for (String s : list) { ... }
list.forEach(System.out::println);
✅ 七、异常处理机制
1. 异常体系
类型示例编译时异常IOException, SQLException运行时异常NullPointerException2. try-catch-finally
try {
int x = 1 / 0;
} catch (ArithmeticException e) {
e.printStackTrace();
} finally {
System.out.println("释放资源");
}
✅ 八、输入与输出(IO)
1. 字节流与字符流
FileInputStream fis = new FileInputStream("a.txt");
FileReader fr = new FileReader("a.txt");
BufferedReader br = new BufferedReader(fr);
2. 序列化与反序列化
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.ser"));
oos.writeObject(myObject);
类需实现 Serializable 接口
✅ 九、多线程编程
1. 创建线程的三种方式
// 继承 Thread
class MyThread extends Thread {
public void run() {
System.out.println("子线程");
}
}
// 实现 Runnable
Runnable r = () -> System.out.println("Lambda Thread");
new Thread(r).start();
// 使用线程池
ExecutorService es = Executors.newFixedThreadPool(2);
es.execute(() -> System.out.println("线程池中的线程"));
2. 同步关键字
synchronized (this) {
// 临界区
}
✅ 十、网络编程(Socket)
// 服务端
ServerSocket server = new ServerSocket(8888);
Socket client = server.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
// 客户端
Socket socket = new Socket("localhost", 8888);
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
pw.println("Hello Server!");
✅ 十一、反射机制
Class> cls = Class.forName("com.example.Person");
Object obj = cls.getDeclaredConstructor().newInstance();
Method method = cls.getMethod("sayHello");
method.invoke(obj);
✅ 十二、常用API详解
java.lang:基础类(String、Object、Math、System)java.util:集合、工具类、时间处理java.io:输入输出java.net:网络java.nio:高性能 IOjava.time:Java 8 日期时间 API
✅ 十三、Java 关键特性
特性说明自动垃圾回收JVM 自动释放无用内存类加载机制延迟加载、双亲委派模型平台无关性JVM 使 Java 能跨平台运行泛型提高代码复用、增强类型安全Lambda 表达式简化函数式编程(Java 8 引入)
✅ 十四、学习建议与实践路线
学习路线建议:
掌握语法 + 面向对象思想熟练掌握集合 + IO + 异常 + 多线程完成小项目(如:图书管理系统、学生管理系统)阅读官方文档和 JDK 源码(如:ArrayList)学习进阶框架(Spring Boot、MyBatis)
✅ 十五、经典练习题推荐
打印九九乘法表模拟学生成绩管理系统编写图书馆借阅系统编写 TCP 聊天程序文件批量复制、合并等
✅ 结语
JavaSE 是一切 Java 技术的基石,掌握它不仅能让你写出稳健、高效的代码,也能在求职、面试中脱颖而出。希望这篇博客能成为你 Java 学习道路上的一块垫脚石!
如需源代码示例、配套PDF笔记或后续进阶框架学习路线(Spring、MyBatis、JavaWeb),欢迎评论/私信获取!