2018年Java后端面试经历

       楼主 16 年毕业,16 年三月份进入上一家公司到今年 3 月底,所以这是一份两年工作经验面经分享。

       都说金三银四,往些年都是听着过没啥特别的感觉。今年自己倒是确确实实体验了一把银四,从 3 月 26 裸辞到 4 月 17 号为止拿到两份 offer,这其中的情绪波动现在想想都感到奇妙。有淡定,有暴躁,有心慌,有恐惧,有投入(刷面试题,看资料),最后加上心仪面试公司发出 offer 自己高兴到跳起来的那份喜悦。(这里给个小经验:如果可以,千万不要选择裸辞。反正楼主是这么想的,judge on your own...)

       下面开始我的面经之旅吧,希望可以为阅读的你带来一份帮助。(下面的面试题,仅限楼主记住的部分,请包涵)

        一、浙江大华技术股份有限公司

       >>>这是一个专场面,嗯... 然后挂的比较惨。面试官第一句话:介绍下自己吧,(balabala),然后瞄了一下简历,你这就两年工作经验,我没啥问的,就问你点基础吧(明显感受到面试官对我并不感兴趣。后来了解到,人家最低要求 3)。最后分分钟挂掉,数据结构与算法必须牢固,轻松不得。

  1. 快排知道吧,写;嗯,冒泡知道吧,写
  2. 讲一讲平衡二叉树
  3. 3/4 请保留两位精度,java 怎么做
  4. 讲一讲深度优先、广度优先
  5. hashmap 怎么删除一个重复的元素
  6. 2018 年 4 月 1 号是星期几怎么实现

        二、中软信息系统工程有限公司

        >>>第二面跟技术主管面聊的时候,说目前对应的是一个偏维护的岗位,所以到华为研发中心去面了一轮(两轮技术面 + 技术主管面 + 华为技术面 +HR 面),只要书看了,理解了,基本上没啥问题(说到底基础还是很重要)。楼主最后是拿到了 offer

  1. 讲一讲常用的 hibernate 注解方式
  2. springMVC 的 controller 有哪些注解方式
  3. java 怎么实现调用 Web Service 接口
  4. 讲一讲 restful,对于请求参数,讲一讲有哪些注解
  5. rest 的请求参数如果是一个对象,怎么做的
  6. 聊一聊 java 并发
  7. 说一说你最优秀的一个项目
  8. 用 springMVC 的好处
  9. 讲一讲事务
  10. 如果要实现服务器要向客户端推送消息,你会怎么做,用什么方式
  11. StringBuffer 是怎么实现线程安全的
  12. 反转数组元素,你会怎么实现
  13. hibernate 的关系映射如何做
  14. 为什么要重写 equals()方法和 hashCode() 方法
  15. 客户端发起请求到服务器这个中间过程有了解过吗
  16. 知道 HashMap 吗,讲一讲
  17. 什么是内存泄露
  18. 手写快排,讲一下代码思路
  19. 讲一讲 jvm 的内存划分
  20. 讲一讲 springMVC 的处理流程

       三、上海点融信息科技有限公司

       >>>点融网 java 多线程这一块儿问的比较深(经历了三轮技术面 + 两轮 HR 面),虽然成功拿下 offer,但是同时也发现了自己的一些基建还不够,要做一个研发那么不能只停留在如何用,而应该深入到底层远离。学习如逆水行舟,不进则退!共勉吧。

  1. 多个线程如何实现让线程执行结束后才打印结果
  2. volatile 修饰竞态资源最后的结果是怎样的
  3. 我有一个学生对象(学号,姓名),用 Set 怎么实现保留其中一个
  4. HashSet 底层是怎么实现去重的
  5. 自定义注解是怎么使用的(你定义了一个自定义注解,你是怎么使用它的,为什么能使用)
  6. Excutors 底层是怎么实现的
  7. 你为什么使用 ThreadPoolExcuter 而不使用 ExcutorService,ExcutorService 有哪些用法
  8. 公平锁、非公平锁概念
  9. 非公平锁是怎么用的,为什么要抢占资源
  10. ThreadLocal 知道吗?如果我有一个线程 用 ThreadLocal 维护了一个变量,这个线程有很多子线程,能不能访问到主线程维护的这个变量,为什么
  11. 你用到了观察者模式,那么讲一讲
  12. 你还知道哪些设计模式
  13. 知道什么是内存泄露吗
  14. 什么时候触犯垃圾回收  触发点是什么
  15. 哪些对象被回收
  16. 什么是大对象
  17. 讲一讲 HashMap,我有两个重复的 key 插入 HashMap,内部是如何实现的   为什么要重写 equals 和 hashCode 方法
  18. 聊一聊多线程,是怎么使用的,Callable 和 Runnable 有什么区别
  19. JVM 怎么划分的
  20. 新建一个对象是存放到哪里的
  21. 用过 atomic 包下面哪些类,是怎么使用的
  22. 讲一讲 restful,restful 有哪些请求,restful 使用了什么协议
  23. 你觉得 restful 和 webServie 最大的区别在哪里
  24. 基于你的项目,你是怎么理解业务建模的  你能描述一下整个过程吗?你是怎么看待业务建模的?
  25. 新建实例,可以通过会话共享技术实现新建实例被使用;还有其它什么技术能实现该功能(这个题大致记得是这样,应该就是能代替会话共享的其他技术)
  26. 了解 spring 吗
  27. 讲一讲 countDownLatch
  28. 什么是线程安全
  29. 知道 Java 内存模型吗
  30. 知道数据库三范式吗?记不清就不用讲定义,用你自己的话讲讲吧
  31. 什么是序列化和反序列化
  32. 知道代理模式吗?AOP 用到了什么代理模式
  33. JDK 动态代理底层是怎么实现的
  34. 你用过 git,说一说 git 的一些指令吧
  35. 讲一讲 java 并发
  36. 熟悉 springboot? spring cloud 有了解过吗
  37. 都用过哪些数据库? 有没有用过 nosql 数据库
  38. 用过 mongDB 没
  39. 我怎么拿到一个或多个线程执行后返回的结果

       四、成都微思格科技有限公司

       >>>微思格应该是一家偏传统的企业,技术面一般也还好,但是 HR 面就聊的不是很开心了(就两轮),最终风兮兮... 人敬之,吾敬之;人辱之,余远之,勉之...

  1. Java 线程池如何等待部分线程结束
  2. 索引的优缺点
  3. 讲一讲单例模式的双重检查(DCL)
  4. HashMap 如何实现线程安全
  5. ArrayList 和 Linked 的区别
  6. 讲一讲你参与度最高的一个项目
  7. 都知道哪些锁
  8. 线程池通过哪些方式用的
  9. 你之前的项目都用到哪些了技术

        五、深圳慧择保险经纪有限公司

        >>>要做笔试题,可能是慧择网今年新建 base 的缘故,笔试题部分比较基础。但是对于我这个两年工作经验的人来说,我倒觉得笔试题好难。怎么说,还是基础很重要吧。下面我会仔细想想,然后罗列一下笔试题考点(头疼...>_<),经历了一轮技术面 +CTO 面,最后成功拿下 offer。基础、基础、基础,重要事情说三遍!

  1. 笔试部分考点:Java 类的加载顺序;线程安全;Java 基本类型的强转;数据库查询;包装器的装箱与拆箱;面对对象原则(还有一些考点,想不起来了)
  2. 数据库 left join、right join、inner join、full join
  3. HashMap、HashTable 的区别
  4. HashMap 原理,怎么实现其线程安全
  5. Callable、Runnable 实现多线程异同点
  6. HashMap 多线程引发问题
  7. HashMap 为什么要使用红黑树实现(好处与损失)
  8. 谈一谈你做过的项目
  9. 讲一讲适配器模式
  10. 讲一讲 Java 的 IO 编程
  11. 程序容易出现 OutOfMemery 问题,你是怎么排查的
  12. 进程之间的通信方式
  13. 涉及复杂的业务逻辑多张表,写具体 sql 语句
  14. 讲一讲你看过哪些内容的源代码
  15. 看过什么书,目前在看什么书

       总结:书到用时方恨少,平时基建很重要、重要、重要!共勉,愿你我同进步!