2018年Java后端面试经历
楼主 16 年毕业,16 年三月份进入上一家公司到今年 3 月底,所以这是一份两年工作经验面经分享。
都说金三银四,往些年都是听着过没啥特别的感觉。今年自己倒是确确实实体验了一把银四,从 3 月 26 裸辞到 4 月 17 号为止拿到两份 offer,这其中的情绪波动现在想想都感到奇妙。有淡定,有暴躁,有心慌,有恐惧,有投入(刷面试题,看资料),最后加上心仪面试公司发出 offer 自己高兴到跳起来的那份喜悦。(这里给个小经验:如果可以,千万不要选择裸辞。反正楼主是这么想的,judge on your own...)
下面开始我的面经之旅吧,希望可以为阅读的你带来一份帮助。(下面的面试题,仅限楼主记住的部分,请包涵)
一、浙江大华技术股份有限公司
>>>这是一个专场面,嗯... 然后挂的比较惨。面试官第一句话:介绍下自己吧,(balabala),然后瞄了一下简历,你这就两年工作经验,我没啥问的,就问你点基础吧(明显感受到面试官对我并不感兴趣。后来了解到,人家最低要求 3)。最后分分钟挂掉,数据结构与算法必须牢固,轻松不得。
- 快排知道吧,写;嗯,冒泡知道吧,写
- 讲一讲平衡二叉树
- 3/4 请保留两位精度,java 怎么做
- 讲一讲深度优先、广度优先
- hashmap 怎么删除一个重复的元素
- 2018 年 4 月 1 号是星期几怎么实现
二、中软信息系统工程有限公司
>>>第二面跟技术主管面聊的时候,说目前对应的是一个偏维护的岗位,所以到华为研发中心去面了一轮(两轮技术面 + 技术主管面 + 华为技术面 +HR 面),只要书看了,理解了,基本上没啥问题(说到底基础还是很重要)。楼主最后是拿到了 offer
- 讲一讲常用的 hibernate 注解方式
- springMVC 的 controller 有哪些注解方式
- java 怎么实现调用 Web Service 接口
- 讲一讲 restful,对于请求参数,讲一讲有哪些注解
- rest 的请求参数如果是一个对象,怎么做的
- 聊一聊 java 并发
- 说一说你最优秀的一个项目
- 用 springMVC 的好处
- 讲一讲事务
- 如果要实现服务器要向客户端推送消息,你会怎么做,用什么方式
- StringBuffer 是怎么实现线程安全的
- 反转数组元素,你会怎么实现
- hibernate 的关系映射如何做
- 为什么要重写 equals()方法和 hashCode() 方法
- 客户端发起请求到服务器这个中间过程有了解过吗
- 知道 HashMap 吗,讲一讲
- 什么是内存泄露
- 手写快排,讲一下代码思路
- 讲一讲 jvm 的内存划分
- 讲一讲 springMVC 的处理流程
三、上海点融信息科技有限公司
>>>点融网 java 多线程这一块儿问的比较深(经历了三轮技术面 + 两轮 HR 面),虽然成功拿下 offer,但是同时也发现了自己的一些基建还不够,要做一个研发那么不能只停留在如何用,而应该深入到底层远离。学习如逆水行舟,不进则退!共勉吧。
-
多个线程如何实现让线程执行结束后才打印结果
-
volatile 修饰竞态资源最后的结果是怎样的
-
我有一个学生对象(学号,姓名),用 Set 怎么实现保留其中一个
-
HashSet 底层是怎么实现去重的
-
自定义注解是怎么使用的(你定义了一个自定义注解,你是怎么使用它的,为什么能使用)
-
Excutors 底层是怎么实现的
-
你为什么使用 ThreadPoolExcuter 而不使用 ExcutorService,ExcutorService 有哪些用法
-
公平锁、非公平锁概念
-
非公平锁是怎么用的,为什么要抢占资源
-
ThreadLocal 知道吗?如果我有一个线程 用 ThreadLocal 维护了一个变量,这个线程有很多子线程,能不能访问到主线程维护的这个变量,为什么
-
你用到了观察者模式,那么讲一讲
-
你还知道哪些设计模式
-
知道什么是内存泄露吗
-
什么时候触犯垃圾回收 触发点是什么
-
哪些对象被回收
-
什么是大对象
-
讲一讲 HashMap,我有两个重复的 key 插入 HashMap,内部是如何实现的 为什么要重写 equals 和 hashCode 方法
-
聊一聊多线程,是怎么使用的,Callable 和 Runnable 有什么区别
-
JVM 怎么划分的
-
新建一个对象是存放到哪里的
-
用过 atomic 包下面哪些类,是怎么使用的
-
讲一讲 restful,restful 有哪些请求,restful 使用了什么协议
-
你觉得 restful 和 webServie 最大的区别在哪里
-
基于你的项目,你是怎么理解业务建模的 你能描述一下整个过程吗?你是怎么看待业务建模的?
-
新建实例,可以通过会话共享技术实现新建实例被使用;还有其它什么技术能实现该功能(这个题大致记得是这样,应该就是能代替会话共享的其他技术)
-
了解 spring 吗
-
讲一讲 countDownLatch
-
什么是线程安全
-
知道 Java 内存模型吗
-
知道数据库三范式吗?记不清就不用讲定义,用你自己的话讲讲吧
-
什么是序列化和反序列化
-
知道代理模式吗?AOP 用到了什么代理模式
-
JDK 动态代理底层是怎么实现的
-
你用过 git,说一说 git 的一些指令吧
-
讲一讲 java 并发
-
熟悉 springboot? spring cloud 有了解过吗
-
都用过哪些数据库? 有没有用过 nosql 数据库
-
用过 mongDB 没
-
我怎么拿到一个或多个线程执行后返回的结果
四、成都微思格科技有限公司
>>>微思格应该是一家偏传统的企业,技术面一般也还好,但是 HR 面就聊的不是很开心了(就两轮),最终风兮兮... 人敬之,吾敬之;人辱之,余远之,勉之...
- Java 线程池如何等待部分线程结束
- 索引的优缺点
- 讲一讲单例模式的双重检查(DCL)
- HashMap 如何实现线程安全
- ArrayList 和 Linked 的区别
- 讲一讲你参与度最高的一个项目
- 都知道哪些锁
- 线程池通过哪些方式用的
- 你之前的项目都用到哪些了技术
五、深圳慧择保险经纪有限公司
>>>要做笔试题,可能是慧择网今年新建 base 的缘故,笔试题部分比较基础。但是对于我这个两年工作经验的人来说,我倒觉得笔试题好难。怎么说,还是基础很重要吧。下面我会仔细想想,然后罗列一下笔试题考点(头疼...>_<),经历了一轮技术面 +CTO 面,最后成功拿下 offer。基础、基础、基础,重要事情说三遍!
- 笔试部分考点:Java 类的加载顺序;线程安全;Java 基本类型的强转;数据库查询;包装器的装箱与拆箱;面对对象原则(还有一些考点,想不起来了)
- 数据库 left join、right join、inner join、full join
- HashMap、HashTable 的区别
- HashMap 原理,怎么实现其线程安全
- Callable、Runnable 实现多线程异同点
- HashMap 多线程引发问题
- HashMap 为什么要使用红黑树实现(好处与损失)
- 谈一谈你做过的项目
- 讲一讲适配器模式
- 讲一讲 Java 的 IO 编程
- 程序容易出现 OutOfMemery 问题,你是怎么排查的
- 进程之间的通信方式
- 涉及复杂的业务逻辑多张表,写具体 sql 语句
- 讲一讲你看过哪些内容的源代码
- 看过什么书,目前在看什么书
总结:书到用时方恨少,平时基建很重要、重要、重要!共勉,愿你我同进步!