1. 平台与体系

  • JVM(Java Virtual Machine)

    • 负责 Java 字节码的加载、验证、执行与内存管理

    • 各厂商(Oracle、OpenJ9、OpenJDK HotSpot)实现略有差异

  • JRE(Java Runtime Environment)

    • 包含 JVM、核心类库(rt.jar)、支持文件

    • 用于运行 Java 程序

  • JDK(Java Development Kit)

    • 包含 JRE + 编译器(javac)、文档工具(javadoc)、打包工具(jar)等

    • 用于开发 Java 应用

2. 语法与基本类型

基本数据类型(8 种)

  • 整数:byte (8 位),short (16 位),int (32 位),long (64 位)

  • 浮点:float (32 位),double (64 位)

  • 字符:char (16 位 Unicode)

  • 布尔:boolean (true/false)

引用类型

  • 类(class)、接口(interface)、数组、枚举(enum

变量与作用域

  • 成员变量、局部变量、方法参数

  • 作用域由 {} 决定,局部变量需显式初始化

运算符

  • 算术、赋值、关系、逻辑、位移、三元、instanceof

3. 面向对象编程(OOP)

  • 类与对象

    • 类:属性(字段)+ 方法

    • 对象:类的实例,通过 new 创建

  • 封装(Encapsulation)

    • private 字段 + public getter/setter

  • 继承(Inheritance)

    • class Sub extends Super;单继承

    • super 关键字访问父类构造器/方法

  • 多态(Polymorphism)

    • 方法重写(Override)与动态绑定

    • 父类引用指向子类对象

  • 抽象(Abstraction)

    • 抽象类(abstract class)+ 抽象方法

    • 接口(interface)Java 8 增强:defaultstatic 方法

  • 接口与实现

    • 接口多实现:class C implements I1, I2

    • 常用于解耦与回调

4. 包与访问控制

  • 包(Package)

    • package com.example;

    • 目录结构与包名对应

  • 访问级别

    • public > protected > (默认)> private

    • protected 允许同包与子类访问

5. 常用 API

  1. 集合框架(Collections)

    • 接口:ListSetMapQueue

    • 实现:ArrayListLinkedListHashSetHashMapTreeMap

    • 特点:容量扩展、线程安全 vs 非线程安全

  2. 泛型(Generics)

    • 声明:List<String>;通配:List<?>List<? extends T>List<? super T>

    • 擦除机制:编译时检查,运行时类型信息擦除

  3. 异常处理

    • 受检查异常(IOException 等) vs 非受 checked(RuntimeException

    • try–catch–finallytry-with-resources(Java 7+)

    • 自定义异常:继承 ExceptionRuntimeException

  4. I/O 与 NIO

    • 经典 I/O:InputStream/OutputStreamReader/Writer

    • NIO:BufferChannelSelector;可用于高性能网络编程

  5. 多线程 & 并发

    • 基础:ThreadRunnableCallable + Future

    • 线程池:ExecutorServiceScheduledExecutorService

    • 并发工具:synchronizedvolatileLockReentrantLock)、AtomicXxxCountDownLatchCyclicBarrierSemaphore

  6. Lambda 表达式 & Stream API(Java 8+)

    • Lambda:(x)->x*x;函数式接口(@FunctionalInterface

    • Stream:stream().filter(...).map(...).collect(...)

    • 并行流:parallelStream()