一些小知识

yql

1.知道lambda表达式吗,一般会在哪里用到?

Lambda 表达式是 Java 8 引入的一种新特性,用于简化代码,特别是对于需要传递行为(如匿名类)的场景。它是一个函数式编程特性,允许将代码块作为数据传递。

Lambda 表达式的形式:

1
(参数列表) -> { 方法体 }

特性和作用

  1. 简化匿名类的语法:特别是在处理函数式接口时(如 RunnableComparator 等)。
  2. 提升代码可读性:减少冗长的代码,专注于核心逻辑。
  3. 支持函数式接口:Lambda 表达式必须依赖函数式接口,即只有一个抽象方法的接口。
1
2
3
4
5
6
7
8
9
//堆自定义排序方式
PriorityQueue<int[]> pq = new PriorityQueue<>(
(pair1, pair2)->{
if (pair2[1] != pair1[1]) {
return Integer.compare(pair2[1], pair1[1]); // 第二个元素降序
}
return Integer.compare(pair1[0], pair2[0]); // 第一个元素升序
}
);

2. Doirs数据库

Doris是一个现代化的基于MPP(大规模并行处理)技术的分析型数据库产品。简单来说,MPP是将任务并行的数据分散到多个服务器和节点上,在每个节点上计算完成后,再将各自的结果汇总在一起得到最终的结果。(固定历史报表,实时数据分析,交互式数据分析)

3. 什么是协程?

协程会在暂停时保存运行状态,并可以从保存的运行状态恢复并执行。线程同样也可以发生这样的上下文切换,但是它的实现是在内核态中,对程序员不可见,而协程是在用户态运行的,对程序是可见的。

4. 异常

什么时候使用==try…catch==? 和 ==throw== ?

Try…catch 自身处理, throw 丢给调用者解决(一直往上抛, 如果一直抛到main方法都没有人解决,则会中断执行)

  • 当前方法需要继续执行下去时,则使用try…catch,当前方法不需要继续执行下去时,则可以选择使用throw

Comments