标签:无效 隔离 面试 使用 service 秒杀 vol source 执行
线程的5种状态:新建(New),就绪(Runnable),运行(Running),阻塞(Blocked),死亡(Dead) 创建方式:继承Thread 实现Runnable 实现Callable 使用Executors
问题来了:
1. sleep结束后进入什么状态?
2. Runnable和Callable的区别?
3. FutureTask是什么
4. Executors创建的几种线程池? ThreadPoolExecutor的参数?
Java 虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现
ReentrantLock
区别:
问题延伸:
ReentrantLock 和 Synchuronized有什么区别?
Spring Bean 生命周期比较复杂,可以分为创建和销毁两个过程,详情自行百度。
@Autowired采取的策略为按照类型注入(ByType)。
public class UserService { @Autowired private UserDao userDao; }
当一个类型有多个bean值的时候,会造成无法选择具体注入哪一个的情况,这个时候我们需要配合着@Qualifier使用。@Qualifier告诉spring具体去装配哪个对象。
public class UserService { @Autowired @Qualifier(name="userDao1") private UserDao userDao; }
@Resource默认按照ByName自动注入。
public class UserService { @Resource private UserDao userDao; @Resource(name="studentDao") private StudentDao studentDao; @Resource(type="TeacherDao") private TeacherDao teacherDao; @Resource(name="manDao",type="ManDao") private ManDao manDao; }
①如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。
②如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。
③如果指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。
④如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。
问题延伸:
1.事务的底层:aop
2.aop的底层: 动态代理
3.spring提供了哪几种动态代理?
4.@Transaction的默认传播行为
5.一个用@Transaction的方法调用另一个用了@Transaction的方法,执行几次事务,怎么做能只执行一次事务
6.try catch包裹是否能让transaction无效(差不多这个意思)
说这是基本,就几个,肯定要知道(显而易见 我不会)
实话实说, 我游戏网名:Java开发攻城狮 ,就总有人给我出问题,就有人问过我hashmap为什么起用红黑树
建议就俗一点按网上的答,不然他会问你底层源码,handleMapping怎么做的,handleAdapter又怎么做的,没看过源码,老实闭嘴等下个问题。
标签:无效 隔离 面试 使用 service 秒杀 vol source 执行
原文地址:https://www.cnblogs.com/ityangshuai/p/11937624.html