3月8日java学习笔记

  1. 函数式接口(Functional Interface)
    定义:仅含一个抽象方法的接口(可添加@FunctionalInterface注解)

@FunctionalInterface
interface Calculator {
int calculate(int a, int b);
default void log() { /* 默认方法不影响 */ }
}
// Lambda使用
Calculator add = (a, b) -> a + b;
2. 方法引用(Method Reference)

List names = Arrays.asList("Alice", "Bob");
names.forEach(System.out::println); // 实例方法引用
names.sort(String::compareToIgnoreCase); // 类方法引用
3. Lambda实现原理
底层机制:通过invokedynamic指令动态生成匿名类

等价于匿名内部类(简化写法):

Runnable r = () -> System.out.println("Run");
// 等价于
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Run");
}
};

线程通信:通过wait/notify实现条件等待,需配合锁机制使用。

并发工具类:

CountDownLatch:一次性等待

CyclicBarrier:可重复使用的屏障

ConcurrentHashMap:高效线程安全Map

Lambda本质:基于函数式接口的语法糖,依赖invokedynamic指令实现。

posted @ 2025-03-13 22:13  头发少的文不识  阅读(14)  评论(0)    收藏  举报