面试题总结与分享

由于最近在准备换工作,面试了几家公司,现在把自己遇到的面试题整理出来,希望对自己和大家都能有帮助。

基础:

1.自我介绍,擅长哪些方面(这个大家自由发挥)

2.谈谈你对http,tcp/ip理解,

3.谈谈arrayList和linkedList区别和联系,底层实现

4.haspMap原理?是否线程安全?在多线程并发下怎么使用(这个就是想引出currentHashMap)?

5.通常情况下我们如何保证多线程下的线程安全?synchronized和lock的区别和联系,synchronized和static synchronized的区别,项目中用过哪些锁?谈谈volatile关键字?谈谈你对threadLocal的认识?

6.用过线程池吗?使用它的好处?

7.java中保证原子性的类有哪些,如何保证的(引出CAS)?请简述你对CAS的理解?

8.谈谈你对乐观锁和悲观锁的理解?

9.有没有做过mysql性能优化?你们项目是如何做的?

10.看我简历上有使用redis,然后问redis有几种数据类型?有几种持久化方式,请介绍一下各自的优缺点?你们项目是采用何种方式。

11.用过分布式框架?用过dubbo,请简述dubbo原理,常用的几种分布式锁实现方式?zookeeper分布式锁,还有使用redis的

12.spring事务的几种传播行为以及它的隔离级别,请分别介绍?

jvm:

13.请你谈谈jvm内存模型?每个部分的作用?

14.jvm中如何判断一个对象是否存活?(引用计数法,可达性分析法)

15.何时会触发垃圾回收?

16.浅谈分代回收?

17.遇到内存溢出异常吗?怎么解决的?

面试须知:对待面试,态度要好,把自己知道的说清楚,不知道的不了解的和面试官直说就好,不要拖拖拉拉,不然容易给面试官留下不好的印象。

(备注:为了提高我们的主观能动性,这次不提供相关答案)

你可能感兴趣的:(面试题总结与分享)