JDBC连接数据库的基本步骤?
注册驱动(可省略);建立连接(Connection);创建语句对象(Statement/PreparedStatement);执行SQL;处理结果集(ResultSet);关闭资源。
PreparedStatement比Statement好在哪里?
防止SQL注入;预编译提高效率;类型安全,避免字符串拼接错误。
数据库连接池的作用是什么?
复用连接,减少创建和关闭连接的开销,提高性能,便于统一管理。
事务的ACID特性是什么?
原子性(Atomicity):要么全做,要么全不做;一致性(Consistency):数据状态前后一致;隔离性(Isolation):事务间互不干扰;持久性(Durability):提交后永久生效。
事务的隔离级别有哪些?
读未提交(可能脏读);读已提交(解决脏读);可重复读(解决不可重复读);串行化(解决幻读,性能最低)。
Spring框架核心面试题
Spring框架的核心是什么?
IoC(控制反转)和AOP(面向切面编程)。IoC将对象创建和依赖关系的控制权交给容器。
Bean的生命周期是怎样的?
实例化→属性填充→Aware接口回调→初始化前(@PostConstruct)→初始化(InitializingBean)→初始化后(AOP代理)→使用中→销毁。
Spring Bean的作用域有哪些?
单例(singleton,默认)、原型(prototype)、请求(request)、会话(session)、应用(application)。
Spring AOP有哪些核心概念?
切面(Aspect)、连接点(JoinPoint)、通知(Advice)、切点(Pointcut)、引入(Introduction)、织入(Weaving)。
Spring MVC的工作流程是怎样的?
-
用户发送请求至前端控制器(DispatcherServlet)。
-
控制器调用处理器映射器(HandlerMapping)找到处理器(Handler)。
-
通过处理器适配器(HandlerAdapter)执行处理器,返回ModelAndView。
-
视图解析器(ViewResolver)解析视图,渲染后响应。
设计模式高频面试题
单例模式的实现方式有哪些?
饿汉式(线程安全,类加载时创建);懒汉式(双重检查锁/DCL);静态内部类(推荐,线程安全且懒加载);枚举(最安全,防反射攻击)。
工厂模式和抽象工厂模式的区别?
工厂模式针对一个产品等级结构(如生成一种电脑);抽象工厂模式针对多个产品族(如生成电脑和手机一套产品)。
Spring中用了哪些设计模式?
工厂模式(BeanFactory)、单例模式(Bean默认单例)、代理模式(AOP)、模板方法模式(JdbcTemplate)、观察者模式(事件监听)。
代理模式分为哪几种?
静态代理(手动编写代理类);动态代理(运行时生成,JDK基于接口,CGLIB基于子类)。
观察者模式的使用场景?
定义对象间的一对多依赖,当一个对象状态改变时,所有依赖它的对象都会得到通知并自动更新,如Spring的事件监听机制。
