xDocxDoc
AI
前端
后端
iOS
Android
Flutter
AI
前端
后端
iOS
Android
Flutter
  • Java Web 基础

    • Java Web开发从零开始:初学者完整学习指南
    • Java Web开发基础技术栈
    • Java Web 数据库与持久层技术
    • Java Web开发框架
    • 🔒 Java Web安全体系详解

以下为Java基础核心知识点的系统详解,涵盖语言特性、语法基础、面向对象编程、核心API及高级特性等内容,结合代码示例和注释帮助理解:


🧱 一、Java语言基础

1. 语言特性

  • 跨平台性:通过JVM实现“一次编写,到处运行”。
  • 面向对象:支持封装、继承、多态三大特性。
  • 自动内存管理:JVM的垃圾回收机制(GC)自动回收无用对象。

2. 开发环境搭建

  1. 安装JDK(推荐JDK 11+)并配置环境变量 JAVA_HOME。
  2. IDE选择:IntelliJ IDEA或Eclipse。

3. 基础语法结构

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Java!"); // main方法是程序入口
    }
}

📦 二、数据类型与变量

1. 基本数据类型

类型大小示例
int4字节int age = 25;
double8字节double pi = 3.14;
boolean1位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. 集合框架

接口实现类特点
ListArrayList动态数组,有序可重复
SetHashSet无序唯一,基于哈希表
MapHashMap键值对存储,键唯一
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基础

  1. 内存区域:
    • 堆:存储对象实例(GC主要管理区)。
    • 栈:存储局部变量和方法调用栈帧。
  2. 垃圾回收:
    • 分代收集(Young/Old区),标记-清除、复制算法。

🧪 六、开发实践与工具

  1. 单元测试(JUnit):
    @Test
    public void testAddition() {
        assertEquals(4, MathUtils.add(2, 2));
    }
  2. 构建工具:
    • Maven:依赖管理、项目构建。
  3. 调试技巧:
    • IDE断点调试、日志分析(SLF4J + Logback)。

📊 知识体系关联图


💎 总结

掌握Java基础需深入理解面向对象思想、核心API设计原理及JVM工作机制,并通过项目实践巩固知识点。建议:

  1. 编码实践:手写数据结构(如链表、哈希表)。
  2. 源码阅读:研究JDK中ArrayList、HashMap等实现。
  3. 持续学习:关注Java新版本特性(如Records、Pattern Matching)。

资源推荐:

  • 书籍:《Java核心技术 卷I》
  • 文档:https://docs.oracle.com/javase/specs/
最后更新: 2025/8/26 10:07