

准备篇-01-企业简历筛选规则

准备篇-02-简历注意事项


等写简历的时候看02和04...
准备篇-03-应届生该如何找到合适的练手项目



!准备篇-04-Java程序员的面试过程
Redis篇-01-redis开篇
感觉有点难
Redis篇-02-redis使用场景-缓存-缓存穿透
Redis篇-03-redis使用场景-缓存-缓存击穿
Redis篇-04-redis使用场景-缓存-缓存雪崩
Redis篇-05-redis使用场景-缓存-双写一致性
Redis篇-06-redis使用场景-缓存-持久化
Redis篇-07-redis使用场景-缓存-数据过期策略Redis篇-08-redis使用场景-缓存-数据淘汰策略
Redis篇-09-redis分布式锁-使用场景
数据库篇01-MySQL篇-课程介绍
02-优化-如何定位慢查询
03-优化-sql语句执行的很慢,如...
04-优化-索引概念及索引底层数据..
05-优化-聚族索引和非聚族索引.
06-优化-覆盖索引、超大分页优化
07-优化-索引创建的原则
08-优化-什么情况下索引会失效
09-优化-谈一谈你对sql优化的经验
10-事务-事务的特性
11-事务-并发事务问题、隔离级别
12-事务-undo log 和 redo log的...
13-事务-解释一下mvcc
14-MySQL-主从同步原理
15-MySQL-分库分表
01-框架篇-课程介绍

02-Spring-单例bean是线程安全的吗
bean是默认单例的,在注解@scope设置


所以bean里面尽量 不定义 可修改的成员变量
面试官:Spring框架中的单例bean是线程安全的吗?
候选人:
嗯!不是线程安全的,是这样的
当多用户同时请求一个服务时,容器会给每一个请求分配一个线程,这时多个线程会并发执行该请求对应的业务逻辑(成员方法),如果该处理逻辑中有对该单列状态的修改(体现为该单例的成员属性),则必须考虑线程同步问题。
Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。
比如:我们通常在项目中使用的Spring bean都是不可变的状态(比如Service类和DAO类),所以在某种程度上说Spring的单例bean是线程安全的。
如果你的bean有多种状态的话(比如 View Model对象),就需要自行保证线程安全。最浅显的解决办法就是将多态bean的作用由“singleton”变更为“prototype”。
03-Spring-AOP相关面试题
面试官:什么是AOP
候选人:
aop是面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合,一般比如可以做为公共日志保存,事务处理等
面试官:你们项目中有没有使用到AOP
候选人:
我们当时在后台管理系统中,就是使用aop来记录了系统的操作日志
主要思路是这样的,使用aop中的环绕通知+切点表达式,这个表达式就是要找到要记录日志的方法,然后通过环绕通知的参数获取请求方法的参数,比如类信息、方法信息、注解、请求方式等,获取到这些参数以后,保存到数据库


面试官:Spring中的事务是如何实现的
候选人:
spring实现的事务本质就是aop完成,对方法前后进行拦截,在执行方法之前开启事务,在执行完目标方法之后根据执行情况提交或者回滚事务。
