进阶
一、高级面向对象编程
-
设计模式
- 创建型模式:单例、工厂、抽象工厂
- 结构型模式:代理、装饰器、适配器
- 行为型模式:观察者、策略、模板方法
-
反射机制
Class<?> clazz = Class.forName("com.example.MyClass");
Constructor<?> constructor = clazz.getConstructor(String.class, int.class);
Object instance = constructor.newInstance("test", 123); -
注解(Annotation)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value() default "";
}
二、多线程与并发
-
JUC 包(java.util.concurrent)
- 原子类:
AtomicInteger、AtomicReference - 锁机制:
ReentrantLock、ReadWriteLock - 执行器框架:
ExecutorService、ScheduledExecutorService
- 原子类:
-
线程池
ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(() -> {
// 任务逻辑
});
executor.shutdown(); -
并发工具类
CountDownLatch:倒计时锁CyclicBarrier:循环屏障Semaphore:信号量
三、性能调优
-
JVM 基础
- 内存区域:堆、栈、方法区、本地方法栈、程序计数器
- 垃圾回收:CMS、G1、ZGC 收集器
-
性能监控工具
- JConsole:可视化监控工具
- VisualVM:多功能分析工具
- jstat/jmap/jstack:命令行工具
-
优化实践
- 避免创建过多对象
- 字符串拼接使用
StringBuilder - 合理设置线程池大小
四、IO 与 NIO
-
传统 IO(BIO)
- 阻塞式 IO,基于流模型
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} -
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); -
AIO(Asynchronous IO)
- 异步非阻塞 IO,基于回调机制
五、网络编程
-
Socket 编程
// 服务器端
try (ServerSocket serverSocket = new ServerSocket(8080)) {
Socket socket = serverSocket.accept();
// 处理连接
}
// 客户端
try (Socket socket = new Socket("localhost", 8080)) {
// 发送数据
} -
NIO 网络编程
- 使用
Selector实现多路复用 - 适用于高并发场景
- 使用
-
HTTP 客户端
- 传统
HttpURLConnection - 现代
HttpClient(Java 11+)
- 传统
六、数据库编程
-
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"));
}
} -
连接池
- HikariCP:高性能连接池
- Druid:阿里巴巴开源连接池
-
ORM 框架
- Hibernate:全功能 ORM
- MyBatis:轻量级 SQL 映射框架
七、Java 高级特性
-
模块化系统(Java 9+)
- 模块声明文件
module-info.java
module com.example.myapp {
requires java.base;
exports com.example.myapp.api;
} - 模块声明文件
-
响应式编程
- 基于 Reactive Streams 规范
- 框架:Project Reactor、RxJava
-
函数式编程
- 函数式接口:
Function、Consumer、Predicate - 方法引用:
System.out::println
- 函数式接口:
八、微服务与云原生
-
Spring Cloud
- 服务注册与发现:Eureka、Consul
- 配置中心:Config Server
- 网关:Zuul、Spring Cloud Gateway
-
容器化
- Docker 基础操作
- Dockerfile 编写
FROM openjdk:17
COPY target/myapp.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"] -
Kubernetes
- Pod、Deployment、Service 概念
- 基本命令行操作
九、安全与加密
-
数据加密
- 对称加密:AES、DES
- 非对称加密:RSA、DSA
- 哈希算法:SHA-256、MD5
-
安全框架
- Spring Security 基础配置
- JWT(JSON Web Token)认证
-
最佳实践
- 避免硬编码敏感信息
- 输入验证防止 SQL 注入
- 定期更新依赖库
十、测试与调试
-
单元测试
- JUnit 5 框架
@Test
void testAddition() {
assertEquals(4, 2 + 2);
} -
集成测试
- Spring Test 框架
- MockMvc 测试 REST API
-
调试技巧
- 使用断点调试复杂逻辑
- 日志框架配置:SLF4J + Logback