Java面试高频问题深度解析:JVM、锁机制、SQL优化与并发处理

问题列表

  1. Java中如何实现一个工作流引擎?
  2. Bean的作用域有哪些?
  3. JVM中的锁机制是如何工作的?
  4. 三个方法分别被 synchronized 锁住,方法 a 调用方法 bb 能获取到 a 的锁吗?会有什么问题?
  5. SQL优化时,EXPLAIN 中需要关注哪些关键点?
  6. 什么是覆盖索引?
  7. SELECT * 一定不会命中索引吗?
  8. SELECT *SELECT 全字段 在性能上有区别吗?
  9. 什么是回表?它与索引有什么关系?
  10. 100万数据分给10个线程处理,如何实时获取每个线程的进度?

详细解答

1. Java中如何实现一个工作流引擎?

核心设计思想
  • 流程定义与执行分离:通过XML/JSON定义节点与流转规则,运行时解析生成实例。
  • 状态驱动模型:使用状态模式或有限状态机(FSM)管理流程状态。
  • 持久化与扩展:保存实例数据到数据库,支持插件化扩展(如自定义节点)。
实现步骤
  1. 定义流程模型

    public class WorkflowDefinition {
         
        private String id;
        private Map<String, Node> nodes; // 节点集合
    }
    
  2. 流程实例管理

    public 

你可能感兴趣的:(面试,java,面试,jvm)