Skip to main content

进阶

一、高级面向对象编程

  1. 设计模式

    • 创建型模式:单例、工厂、抽象工厂
    • 结构型模式:代理、装饰器、适配器
    • 行为型模式:观察者、策略、模板方法
  2. 反射机制

    Class<?> clazz = Class.forName("com.example.MyClass");
    Constructor<?> constructor = clazz.getConstructor(String.class, int.class);
    Object instance = constructor.newInstance("test", 123);
  3. 注解(Annotation)

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.METHOD)
    public @interface MyAnnotation {
    String value() default "";
    }

二、多线程与并发

  1. JUC 包(java.util.concurrent)

    • 原子类:AtomicIntegerAtomicReference
    • 锁机制:ReentrantLockReadWriteLock
    • 执行器框架:ExecutorServiceScheduledExecutorService
  2. 线程池

    ExecutorService executor = Executors.newFixedThreadPool(5);
    executor.submit(() -> {
    // 任务逻辑
    });
    executor.shutdown();
  3. 并发工具类

    • CountDownLatch:倒计时锁
    • CyclicBarrier:循环屏障
    • Semaphore:信号量

三、性能调优

  1. JVM 基础

    • 内存区域:堆、栈、方法区、本地方法栈、程序计数器
    • 垃圾回收:CMS、G1、ZGC 收集器
  2. 性能监控工具

    • JConsole:可视化监控工具
    • VisualVM:多功能分析工具
    • jstat/jmap/jstack:命令行工具
  3. 优化实践

    • 避免创建过多对象
    • 字符串拼接使用 StringBuilder
    • 合理设置线程池大小

四、IO 与 NIO

  1. 传统 IO(BIO)

    • 阻塞式 IO,基于流模型
    try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
    System.out.println(line);
    }
    }
  2. NIO(New IO)

    • 非阻塞 IO,基于缓冲区和选择器
    Selector selector = Selector.open();
    ServerSocketChannel serverSocket = ServerSocketChannel.open();
    serverSocket.bind(new InetSocketAddress(port));
    serverSocket.configureBlocking(false);
    serverSocket.register(selector, SelectionKey.OP_ACCEPT);
  3. AIO(Asynchronous IO)

    • 异步非阻塞 IO,基于回调机制

五、网络编程

  1. Socket 编程

    // 服务器端
    try (ServerSocket serverSocket = new ServerSocket(8080)) {
    Socket socket = serverSocket.accept();
    // 处理连接
    }

    // 客户端
    try (Socket socket = new Socket("localhost", 8080)) {
    // 发送数据
    }
  2. NIO 网络编程

    • 使用 Selector 实现多路复用
    • 适用于高并发场景
  3. HTTP 客户端

    • 传统 HttpURLConnection
    • 现代 HttpClient(Java 11+)

六、数据库编程

  1. JDBC 操作

    try (Connection conn = DriverManager.getConnection(url, user, password);
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {
    while (rs.next()) {
    System.out.println(rs.getString("name"));
    }
    }
  2. 连接池

    • HikariCP:高性能连接池
    • Druid:阿里巴巴开源连接池
  3. ORM 框架

    • Hibernate:全功能 ORM
    • MyBatis:轻量级 SQL 映射框架

七、Java 高级特性

  1. 模块化系统(Java 9+)

    • 模块声明文件 module-info.java
    module com.example.myapp {
    requires java.base;
    exports com.example.myapp.api;
    }
  2. 响应式编程

    • 基于 Reactive Streams 规范
    • 框架:Project Reactor、RxJava
  3. 函数式编程

    • 函数式接口:FunctionConsumerPredicate
    • 方法引用:System.out::println

八、微服务与云原生

  1. Spring Cloud

    • 服务注册与发现:Eureka、Consul
    • 配置中心:Config Server
    • 网关:Zuul、Spring Cloud Gateway
  2. 容器化

    • Docker 基础操作
    • Dockerfile 编写
    FROM openjdk:17
    COPY target/myapp.jar /app.jar
    ENTRYPOINT ["java", "-jar", "/app.jar"]
  3. Kubernetes

    • Pod、Deployment、Service 概念
    • 基本命令行操作

九、安全与加密

  1. 数据加密

    • 对称加密:AES、DES
    • 非对称加密:RSA、DSA
    • 哈希算法:SHA-256、MD5
  2. 安全框架

    • Spring Security 基础配置
    • JWT(JSON Web Token)认证
  3. 最佳实践

    • 避免硬编码敏感信息
    • 输入验证防止 SQL 注入
    • 定期更新依赖库

十、测试与调试

  1. 单元测试

    • JUnit 5 框架
    @Test
    void testAddition() {
    assertEquals(4, 2 + 2);
    }
  2. 集成测试

    • Spring Test 框架
    • MockMvc 测试 REST API
  3. 调试技巧

    • 使用断点调试复杂逻辑
    • 日志框架配置:SLF4J + Logback