1. 接口和抽象类的区别2. final关键字3. flink checkpoint4. checkpoint 中barrier的两种对齐5. inteval join6. 窗口函数 Sliding Time Window 为什么不设置很长的窗口时间7. checkpoint 和 kafka offset的关联8. offset的提交是自己写还是用flink框架9. 非Barrier对齐可以保证精准一致性吗10. 状态后端11. 通常使用哪种状态后端,分别优势12. MemoryStateBackend一定不能用吗?缺点是什么