最近,提了离职申请,但这段期间还帮着公司进行面试,因此总结一下最近面试的一些面试题吧,因为接下来就是别人面试wo啦...
本文章是阶段性的更新,如有新颖、奇特的面经,还望同步一下...
自我介绍
呃,这个就因人而异了,忽略...
项目介绍
1. 清楚项目是做什么的?
2. 项目定位(为什么做?亮点是什么?满足那些功能,与竞争品牌优势是什么)?
3. 项目功能(设计哪些功能点,模块)?
4. 项目整体架构、涉及的技术(为什么选择该技术,技术选项)?
5. 自己在项目中担任的位置和作用(承担责任与角色)?
6. 项目使用技术(通过这个项目有哪些成长)?
7. 项目的优缺点,及再设计,会如何考虑(判断你的整体把控能力及思考)?
8.。。。
项目介绍模块,面试官通过该模块,关注的不是你做了什么,而是你会什么;不是你参与了什么,而是你主导了什么;不仅是你的专业技能,还有你敢于创新,职业素养....项目介绍的重点:要么是成绩牛逼,要么是经历不一样,要么是你的体会和收获。
(来自于简书:如何在项目中介绍自己的项目经验?)
Java基础
1. collection集合有哪些类?
2. List与Set的区别?
3. Set是如何保证不重复的?
4. HashMap的原理,扩容,线程是否安全?
5. HashMap JDK1.7与JDK1.8之间的区别?有哪些优化,如何优化?
6. 线程安全的Map有哪些?
7. ConcurrentHashMap的实现原理,如何保证线程优化?JDK1.7与JDK1.8之间的如何再次优化的?
8. 异常分类?处理机制是什么?
9. equals与==的区别?hashcode()与equals()之间的联系?Object.hashCode()方法与System.identityHashCode(object)之间的区别?
10.ArrayList与LinkedList与Vector之间的区别?原理机制?
11.有没有保证顺序的Map,实现原理是什么?那有没有线程安全的Map类?
12.Java反射的 原理是什么?反射创建对象的方式有哪些?
13.简单谈一谈深拷贝与浅拷贝之间的区别?
14.JDK1.5中引入了泛型,它的存在是用来解决什么问题的?
答:泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率
15.int与Inter关于加减等,数值>=128的相等关系判断?
16.Math类中的随机数(这个当初遇见过,让说出创建1-100之间随机数的几种方法)?
17.(实战)手动实现一个LRU / FIFO缓存算法?
18.。。。
Java并发 / 线程
1.线程是什么?与进程的区别?
2.实现线程的方式有哪几种?
3.线程池创建线程的几种方式?线程池有什么优点?
4.什么是线程安全?如何保证线程安全?
5.Java内存模型是什么?有什么特点?(JMM)
6.Java关键字 - volatile 的作用与区别?实现原理?
7.Java锁 - synchronized 与 reentrantLock 之间的区别?
8.如何避免死锁?(怎么排查死锁,这个与JVM有关)
9.J.U.C包下面的并发类了解哪些?(CountDownLatch、CyclicBarrier、Semphore)
10.CAS?CAS有什么缺陷?如何解决?
11.AQS?
12.LockSupport工具?park?unpark?
13.分段锁的设计思想?其替代的方案是什么?
14.Fork/Join 框架的理解?
15.ThreadLocal的原理,注意事项?
16.。。。
Spring
中间件
分布式
数据库
JVM
fn
1.。。。
总得总结一下,毕竟开发问的问题还是有很大的重复性的,答案就不往上写了,本篇还后续还会不间断更新的...