两者之间有什么区别,因为两者都是基于通过主题/主题在它们之间交换消息的发布者和订阅者的相同方法?
在 Java 8default中引入了方法实现。我的问题是为什么需要default在方法名称/签名中有关键字。为什么不能default像通常的方法实现一样没有关键字?
我是多线程的初学者,有一个疑问:
java中的传统同步(使用synchronized关键字)是否有其他替代方案,因为它会影响应用程序的性能?
在查看 lambda 表达式时,我发现了匿名内部类和 lambda 表达式的以下行为。这背后的原因可能是什么?
Human h = new Human() {
int a = 2;
@Override
public void sing() {
System.out.println(++a);
}
};
h.sing();
h.sing();
Run Code Online (Sandbox Code Playgroud)
输出/输出
3
4
Run Code Online (Sandbox Code Playgroud)
而对于 lambda,我得到以下结果:
Human h = () -> {
int a = 2;
System.out.println(++a);
};
h.sing();
h.sing();
}
Run Code Online (Sandbox Code Playgroud)
输出/输出
3
3
Run Code Online (Sandbox Code Playgroud)