面试题(一)

目录

一.@Transactional 原理和常见的坑

前期准备

事务不生效的几种 Case

原理

源码解读

@Transactional 执行机制

private 导致事务不生效原因

异常不匹配原因

两种 @Transactional

Spring  @Transactional

javax.transaction.Transactional 

二.@Autowired 和 @Resource 的区别是什么?

@Autowired

@Resource 

小结

三.什么是序列化?常见的序列化协议有哪些?

什么是序列化?什么是反序列化?

实际开发中有哪些用到序列化和反序列化的场景? 

序列化协议对应于 TCP/IP 4 层模型的哪一层? 

常见序列化协议对比 

JDK 自带的序列化方式

Kryo

四.深拷贝和浅拷贝区别了解吗?什么是引用拷贝? 

五.优惠券设计

六.数据库优化

优化方案

Mysql索引

多表查询优化

 一条MySQL语句的执行过程

七.静态代理和动态代理

静态代理

静态代理的特点

静态代理的实现

动态代理 

动态代理的特点 

基于JDK实现

基于CGlib实现 

JDK代理与CGLIB代理的区别

八. AOP 了解吗?有什么用?切面执行顺序如何控制?

谈谈自己对于 AOP 的了解

Spring AOP 和 AspectJ AOP 有什么区别? 

AspectJ 定义的通知类型有哪些? 

多个切面的执行顺序如何控制? 

用AOP实现异步上传

九.MQ 消息丢失、重复、积压问题,如何解决?

案例分析 

案例解答

消息丢失

消息检测-拦截器机制

重复消费消息 

消息积压-消费端

总结

十. 说一说你对多态的理解

十一. ==和equals()有什么区别?

十二.String,StringBuilder,StringBuffer

十三.接口和抽象类 

十四.static与final

十五. 泛型


一.@Transactional 原理和常见的坑

面试题(一)_第1张图片

前期准备

面试题(一)_第2张图片

// 提供的接口
public interface UserDao {
    // select * from user_test where uid = "#{uid}"
    public MyUser selectUserById(Integer uid);
    // update user_test set uname =#{uname},usex = #{usex} where uid = #{uid}
    public int updateUser(MyUser user);
}

//====================================================================&

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