7年经验社招终于上岸Java开发!

2022-05-25 14:14:48 浏览数 (1)

你好,我是 Guide。今天来分享一位球友的面试经历,这位朋友工作已经 7 年,之前一直从事 PHP 开发工作,微信公众号开发、保险行业都做过。2 月 21 号的时候正式提交离职申请,3.1 号开始学习 Java。

4 月 18 号的时候,成功拿到了自己的第一个 Java 后端开发 Offer。

下面是正文。

本人今天刚刚收到 offer 了,所以特别来分享一下我面试中遇到的问题以及面试需要注意的事项,绝对有用!!!

第一家公司

第一家公司公司主要是一个负责供应链采购的公司,面试的部分问题如下:

  1. 先做个自我介绍。
  2. 现有一多文件上传需求,要求在 5M 带宽的服务器上上传超过 100 张图片,并且保证用户可以尽快看到上传结果。
  3. springcloud 中 A 服务要调用 B 服务,同时需要将 token 传入 B 服务中,请问使用什么方式传递?
  4. 讲一下你现在做的系统的业务逻辑,用到了什么技术?
  5. mybatis 分页是怎么做的?
  6. 事务你用过吗?
  7. 用过哪些工具类?处理时间和 JSON 你是用的什么工具?
  8. MongoDB 中针对于百万级别的数据,如何优化查询?如何分页?如何创建索引?做过数据统计那么统计的精度是每天还是每个月还是每年?如果去动态查询这些统计数据?

总结 :这家公司比较小,主要是目前需要一个技术快速上手做项目,我面试的时候都回答的不错,本以为会当天收到通知,结果过了两天才收到通知而且还降低了我的薪资,所以果断选择放弃。这个公司主要面试的就是业务能力,比较看重项目经验,底层原理问的比较少,接下来这家公司就是重头戏了。

第二家公司

第二家公司是一个集团,先有笔试再有面试,部分面试问题如下:

  1. 先做一个 10 分钟左右的简短介绍,包括几个方面:你工作的经验,你在这些工作中你的优势是什么?你擅长什么?
  2. mybatis 中的#{}和${}有什么区别?默认使用哪个?为什么这么使用?
  3. 介绍一下 Spring,说一下 Spring 常用注解的用途。
  4. 说一下 SpringAOP 的概念,实际运用场景。
  5. 现在有个对象 user,通过参数传递到其他方法中去,然后 user 的 name 改变了,那么传递的这个对象是值传递还是引用传递,为什么?顺便解释一下值传递和引用传递。
  6. 项目中是如何使用事务的?
  7. 项目中用过多线程吗?如何保证多线程线程安全的?具体你做了哪些操作来实现的?
  8. 你之前做过 PHP?你讲一下 PHP 和 Java 的区别呢?

总结 :这家公司招聘的技术难读明细比上一家公司更大了,很多问题不仅需要你回答出来,还得要了解底层原理。我当时因为回答的是业务型开发,所以就中断了面试了,因为他们想找架构型的开发。

第三家公司

第三家公司也是一个小公司,最终收获 offer,部分面试问题如下:

  1. 先做一个自我介绍(这是必须的)
  2. 说一下你之前做项目的一个业务流程(详细业务流程)
  3. 这个项目你使用了多线程吗?你是如何实现的?
  4. 你说多线程这块你做了性能优化,你能说一下优化的方式和优化的结果吗?
  5. 事务使用过吗?事务和锁一起使用会不会有什么问题?是先使用锁还是先使用事务?
  6. springcloud 的注册服务使用的什么?除了这个还有其他的了解吗?
  7. 消息队列用过吗?你大致讲一下。

总结 :这家公司主要是看中的项目能力,就是你在实际项目中遇到的实际问题要如何解决,之前两家也问过这些问题,但是当时自己回答的太糟糕了所以后面总结了一下,然后就顺利答出来了。

参考答案

你可以在下面两份参考资料上面大部分问题的参考答案:

  • JavaGuide 在线阅读版:https://javaguide.cn/
  • 《Java 面试指北》

总结

最后再总结一下,做自己介绍的时候,先介绍自己的开发经验,然后介绍自己上一家公司,最后介绍自己的拿手项目。面试的时候大多数会问项目相关的问题,所以我们在面试之前一定要提前准备好项目相关的业务逻辑,哪怕你只做了一小块功能,你也要提前去了解整个项目的业务流程,并且能说出一二来。还有就是关于技术有两个方向,一个是底层逻辑的实现,另一个就是这个技术在项目中的实际运用。这些不需要我们真的遇到,但是你一定要提前假设遇到这些问题如何处理。总结一句话就是考验应聘者处理问题的能力和学习能力。

·········· END ··············

0 人点赞