面试题:

  1. 先自我介绍一下?
  2. 说说数据库左连接和右连接的区别?
  3. mysql 的事务说一下?
  4. Spring 原理?
    1. IoC(控制反转)和 DI(依赖注入):
      • IoC(Inversion of Control):IoC 是一种设计思想,它将程序的控制权交给容器或框架,由容器来负责对象的创建和管理。Spring 的 IoC 容器,即 ApplicationContext,负责管理 Bean 的生命周期。
      • DI(Dependency Injection):DI 是 IoC 的一种实现方式,它通过注入的方式将一个对象的依赖关系交给容器管理,而不是在对象内部直接创建依赖对象。这样做提高了组件的可重用性和可测试性。
    2. AOP(面向切面编程):
      • AOP(Aspect-Oriented Programming):AOP 是一种编程范式,它允许将横切关注点(如日志、安全、事务管理等)从业务逻辑中剥离出来,使得系统关注点的变化不影响业务逻辑。在 Spring 中,AOP 通过代理机制实现,常见的代理方式有基于 JDK 动态代理和基于 CGLIB 的代理。
    3. Bean 的生命周期和作用域:
      • Bean 的生命周期:Bean 的生命周期包括实例化、初始化、使用和销毁四个阶段。Spring 容器负责 Bean 的实例化和初始化,而销毁阶段则由容器负责。你可以提及 InitializingBeanDisposableBean 接口以及 @PostConstruct@PreDestroy 注解来控制 Bean 的初始化和销毁操作。
      • Bean 的作用域:Spring 定义了多种 Bean 的作用域,包括 singleton(单例,默认)、prototype(原型)、request(每个 HTTP 请求一个实例)、session(每个 HTTP Session 一个实例)和 global session(全局 HTTP Session 一个实例)等。
    4. Spring 的事务管理:
      • 声明式事务管理:通过使用 @Transactional 注解或 XML 配置来声明事务,使得事务的控制更加方便。Spring 提供了对编程式事务管理的支持,可以通过 PlatformTransactionManager 接口进行编程式事务控制。
    5. Spring 的数据访问与集成:
      • 数据访问:Spring 提供了 JdbcTemplate 等模板类,简化了 JDBC 的操作,同时支持 ORM 框架(如 Hibernate、MyBatis)的集成,提供了对持久层的支持。
      • 集成其他技术:Spring 能够与其他技术(如消息队列、缓存、搜索引擎等)进行集成,提供了丰富的集成方案。
    6. Spring 框架的核心组件:
      • ApplicationContext:Spring 的 IoC 容器,负责管理 Bean 的生命周期。
      • BeanFactory:是 IoC 容器的基础接口,提供了基本的 IoC 功能。
      • BeanPostProcessor:在 Bean 初始化前后执行一些操作。
      • BeanDefinition:定义了 Bean 的配置信息。
  5. Rest 的请求有哪些?
  6. 空窗期的安排?

失败原因:

  1. 准备不充足
  2. 嘴笨,下意识逃避
  3. 没有吸取教训,依然把自己劣势暴露出来。
  4. 压根不重视面试。
  5. 坏习惯依旧不改。

解决方案:

  1. 空出时间在面试前准备模拟面试
  2. 提前准备好自我介绍
  3. 适当改正回答时的下意识逃避行为(这点尤为重要)
  4. 需要调整好作息,不能再休息不好去面试。

初级考察范围:

  1. Java 基础。
  2. SQL 语句
  3. MySql 索引、事务
  4. 框架原理
  5. 项目?