蘑菇街面试问题记录
1.hashMap是不是线程安全的,什么情况下会发生线程不安全,死锁什么情况下发生呢
2.ThreadLocal介绍一下怎么用的?我不会
3.mysql的事务的四大特性介绍一下?我不会
4.mybatis的原理介绍一下,能不能在mybatis中直接查找某个database中的表,不是在mysql的客户端中查找?有一个没听懂的问题,在mysql中写select时怎么避免select的注入的问题?
5.AOP原理介绍一下,IOC介绍一下
6.ArrayList中删除几个String类型的数,怎么删除这些数,能不能用遍历,的方式删除(不能),如iterator。因为没删除一个元素,size会变,会超过索引,IndexOutOfbanarry
7.synchronized举例,一个Thread类中定义三个方法有两个加了同步修饰符,第三个加了this,在线程启动时,调用这些方法会发生什么。(我回答,线程同步)。在问在synchronized前加上static或再启动线程调用三个方法会怎么样,还有在方法内部加上Object o =new Object(),又会怎么样?
8.线程池,线程池中现中核心线程数、最大线程数、队里,运行的策略。加入分别为10、20、1000、线程池会怎么运行。(我回答先核心线程。然后进队列,最后开启最大线程数),问为什么先进队列中,而不是将线程开到最大?以及如果想实现先开到最大线程数,再进队列,直接写代码怎么实现?
9.介绍项目,以及项目中出现的难题,怎么解决的?
10.synchronized和local 的区别介绍一下,我回答,加锁和释放锁,以及一些实现细致方面local更好一点。
11.mysql中的优化问题。我提到了索引,讨论了一下索引的实现原理,同时提问,在给定的一个users表中存在两个字段,