前言
很多程序员都经历过面试,今天就来讲讲我认识的一些朋友的面经。
这里是综合,不单单指哪一次面试,挑了一些面试中比较重点的,希望能够帮助到你们。
一面
1.自我介绍
2.项目情况:
(1)选择最为熟悉的一到两个项目说明,提及该项目中的难点问题,以及如何针对该项目的开展?
(2)为什么做这个项目(避免被动安排这个话题)。
(3) 解释项目中遇到的难点是如何攻克,最难的点是什么?
3.Java虚拟机的构成(重点)。
4.判断对象是否存活的两种方法。
5.java内存区域(运行时数据区)。
6.JVM垃圾回收机制,何时触发MinorGC等操作。
7.jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代?
8.你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms,g1。
9.Eden和Survivor的比例分配。
10.Linux 了解多少?
11.对设计模式的看法和认知。
12.关于树的算法题-二叉树的锯齿形层次遍历。
13.对Java内存模型的理解,以及其在并发中的应用。
14.指令重排序,内存栅栏等。
15.OOM错误,stackoverflow错误,permgen space错误。
16.JVM常用参数。
17.Tomcat结构,类加载器流程。
18.g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择。
19.说一下强引用、软引用、弱引用、虚引用以及他们之间和gc的关系。
20.说一说你对环境变量classpath的理解?如果一个类不在classpath下,为什么会抛出ClassNotFoundException异常,如果在不改变这个类路径的前期下,怎样才能正确加载这个类?
二面
1.对spring和springboot的理解。
2.什么是Spring IOC 容器?
3.控制反转(IoC)有什么作用
4.IOC的优点是什么?
5.Spring IoC 的实现机制?
6.Spring 的 IoC支持哪些功能?
7.BeanFactory 和 ApplicationContext有什么区别?
8.Spring 如何设计容器的,BeanFactory和ApplicationContext的关系详解?
9.ApplicationContext通常的实现是什么?
10.什么是Spring的依赖注入?
11.@Component, @Controller, @Repository, @Service 有何区别?
12.@Required 注解有什么作用?
13.@Autowired 注解有什么作用?
14.@Autowired和@Resource之间的区别。
15.请列举Nginx的一些特性。
16.请解释Nginx如何处理HTTP请求。
17.在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
18.使用“反向代理服务器”的优点是什么?
19.请列举Nginx服务器的最佳用途。
20.客户端注册Watcher 实现、服务端处理Watcher 实现
21.客户端回调Watcher。
22.ACL权限控制机制。
23.Chroot特性。
24.会话管理、服务器角色。
25.Zookeeper分布式锁(文件系统、通知机制)。
26.获取分布式锁的流程。
三面
1.什么是并发容器的实现?
2.多线程同步和互斥有几种实现方法,都是什么?
3.Java中你怎样唤醒一个阻塞的线程?
4.在Java中CycliBarriar和CountdownLatch有什么区别?
5.什么是线程组,为什么在Java中不推荐使用?
6.LinkedBlockingDeque。
7.什么是Daemon线程?它有什么意义?
8.notify()和 notifyAll()有什么区别?
9.mylasm、memory、tokudb、B+树、概念
10.排序二叉树、前缀树、红黑树、位图。
11.数据库并发策略、乐观锁、悲观锁、时间戳。
12.说说 RPC的实现原理、说说Dubbo的实现原理。
13.微服务架构有哪些优势?微服务有哪些特点?
14.设计微服务的最佳实践是什么?
15.微服务架构如何运作?
16.微服务架构的优缺点是什么?
17.单片,SOA和微服务架构有什么区别?
18.SOA和微服务架构之间的主要区别是什么?
19.什么是MyBatis的接口绑定?有哪些实现方式?
20.使用MyBatis的 mapper接口调用时有哪些要求?
21.Mapper编写有哪几种方式?
22.MyBatis实现一对一有几种方式?具体怎么操作的 ?
23.Mybatis是如何进行分页的?分页插件的原理是什么?
24.一对一、一对多的关联查询 ?
25.继承Thread类、实现Runnable接口。
26.volatile是什么?可以保证有序性吗?
27.Thread类中的start() 和 run() 方法有什么区别?
28.为什么wait和notify方法要在同步块中调用?
29.数组与链表的区别有哪些?
30.数据结构与算法的关系是什么?
四面(HR)
- 你为什么选择我们公司?还安排了什么面试?
- 你觉得你的优点和缺点是什么?
- 业余爱好是什么?
- 你觉得你在项目运行过程中作为Leader是否最大限度发挥了队员的优势?具体事例?
- 如何看待阿里在大数据方面的投入?对蚂蚁金服的发展有什么看法?
- 职业规划。
总结面试
1.Java基础(这就包括多线程、jvm、源码各种特性等)。
2.计算机网络相关知识和操作系统的知识(初级和高级基本都会问)。
3.算法(很重要)。
4.框架相关和底层实现(重要)。
5.集合类的底层数据结构(基本都会问)。
6.高并发项目(高级开发必问)。
最后
考虑篇幅,就着重挑了一些常见的重要的面试题展示出来了。
所有的面试题目都不是一成不变的,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。
资料获取方式:三连文章之后 加小助理VX:bjmsb10 来免费获取哦!