(转)毕业一年的菜鸟某东面试总结

转载自: https://blog.csdn.net/KingBoyWorld/article/details/78513852

本人16年毕业,因为对IT感兴趣,所以从大学就开始自学编程(工商专业),野路子出身。毕业之后找了一份工作,直到现在。鸟大了什么林子都有,所以也想出去闯闯,就抱着试试看的态度面了某东,本想着见见世面,别太丢人就好,结果却是意料之外,情理之中。过程中也意识到了自己的不足的地方,还是学习到了很多东西,分享一下。

笔试题

笔试题中大部分都是一些基础性的知识技能,其中类似于jvm的知识其实是扩展的知识,用来考验面试者平时的扩展阅读,自学能力。

笔试题
现在有T1,T2,T3三个线程,你怎样保证T2在T1执行完成后执行,T3在T2执行完成后执行执行?
Java中++i操作是线程安全的吗?为什么?如何使其线程安全呢?
3 * 0.1 == 0.3将会返回什么?true还是false?
说下Java对空间结构,及常用的JVM内存分析命令和工具。
用什么工具和方法分析线程问题?
列举几个索引失效的情况
画一个时序图描述出从用户在浏览器地址栏输入url并按回车,到浏览器显示相关内容的各个过程
8.有一个servlet,提供对外服务,10个请求下创建了几个Servlet实例?
有如下表create table T_a(id bigint primary key,status int)用户A和用户B几乎同时对表里同一条数据的status字段进行更新,其中A用户是将status字段从0变到1,B用户是从0变到2,如何保证最先执行的结果不被后面执行的结果覆盖掉?
在jdbc编程中, 如何避免sql注入漏洞?
如果由你编写一个类似于guava中的缓存组件,有哪些场景需要考虑,以及你的解决方式?

第一面

其中1、5、11题写的不是太好,写完之后,就进行第一面了,面试官拿着笔试答案看着简历就开始问了很多问题,都是相对基础的问题,从JavaSE到框架,再到项目,其中框架问的不是太多。xxoo了一大堆,和面试官尬聊了很久,大概四十分钟左右,觉得自己回答的并不是很好,只回答出了大概60-70%的技术问题,内心很忐忑,觉得要挂了。然而出乎意料的是面试官走的时候说答的很好,让我等下一面(小小激动了一下)。线程、aop、集合、es、微服务、设计模式问的比较多一点。例如aop的本质是什么?es你是如何使用的怎么优化?你在项目中在哪些情景使用了哪些设计模式?什么是微服务?

第二、三、四、五面

这几面基础的技术倒没有聊的太多了,主要问一些对于框架的理解还有思想性的东西。一般面试官来了之后都是先做以下自我介绍,然后会从你的自我介绍中进行连环炮轰击,从一个技术点聊到另一个技术点,而且问的都很深,我是很萌比的。最后一面是技术总监面,问了很多关于架构方面的知识,我也就只能知道啥就说啥了,不会的我就反问如何去解决。最后和我说技术面都通过了,内心激动了好久,我居然能过?!

人事面

回到家正在睡觉呢,一个电话过来了,级别T3,询问了是否单身,住址,薪资要求什么的,几分钟就完事,虽然最终我没过,因为学历问题,三本,想哭……同时也下定决心要考个研玩玩。

技术面的问题总结(想不全了,拿走不谢)

说的内容一定要真实,不能有虚假成分

1. 做下自我介绍
2. 反射的本质是什么
3. sync锁,锁的是什么
4. 常用的设计模式有哪些,说下你用过哪些?再什么的场景
5. spring默认是单例的,还有哪些域?什么情况下使用?
6. spring的aop是通过什么实现的?实现的原理    包括cglib java动态代理
7. 用过哪些线程池工具?
8. set list map是实现同一类接口吗? map的接口是什么?
9. 说下 arraylist/linkedlist内部实现的数据结构?hashmap底层的数据结构是什么样的? hashmap和concurrentHashMap的实现
10. es查询操作怎么写?filter 和matches有何区别?
11. es有哪些应用场景?你在项目中是如何使用的?常用的api有哪些?
12. 你做过的项目中,哪个是你映像最深刻的?有哪些获得?遇到过什么让你记忆犹新的坑?这些坑是如何解决的
13. lambda本质,
14. 内部类使用过吗?什么场景下用?(是个坑,其实几乎不使用)
15. 什么是微服务?说说你对微服务的理解?
16. tomacat如何优化? nginx如何优化?
17. nginx负载策略有哪些?hash   weight 轮询
18. jvm内存结构什么样的?
19. 有哪些垃圾回收器? cms parnew g1 serial
20. A微服务调用B微服务,之间的异常如何处理?异常调用链
21. 分布式事务
22. redis有哪些数据类型?有哪些应用场景?session分离 排序 缓存 全局锁
23. 你做过的mysql表设计中,平均一个表有几个索引?索引在什么情况下失效,列举几个例子
24. git的常用命令,内部的结构,
25. 介绍下springboot,springboot有什么特点?starter   自动配置
26. 说下springcloud的工作流程,为什么要有分布式框架?服务是如何发现的,如何做负载的?
27. 分布式事务的cap理论,
28. spring事务的传播机制,
29. oom如何排查?   dump  分析gc日志
30. 了解前台哪些框架? vue  ,vue用的是什么设计模式?
31. nio和bio的区别?1.代码写法 2.堆内内存和直接内存 3. selector channel
32. 接触的第一门编程语言?你是怎么自学的?
33. 你是非计算机专业,那么你是怎么自学来补齐其他计算机专业知识的?
34. 你平常自学是通过什么途径来学习的?

总结下整个流程吧,

关于面试: 
心态很重要!心态很重要!心态很重要!一定要自信,相信自己,就算过不了又如何?两年后还是一条好汉!在面试中要体现出你的自信好学,其实我之所以能通过所有技术面,和我的好学是分不开的,他们更加看中一个人的自学能力,可以从两个方面说: 
1. 例如在面试中我会”无意”提到spring官方文档中的描述,EffectiveJava中的实践练习等。 
2. 面试中一些不会的点,可以记下来,到最后问问面试官,学习下解决思路,我们自己能学习到知识,同时也会给自己加分。

其中我记忆比较深的一个问题:如何去学习技术?这是我问面试官的一个问题,关于这一点我其实是比较困惑的,我喜欢列出学习计划,列出学习路线,然而总是无法坚持到最后,即使学过的技能,过一段时间可能还是会生疏。而面试官给我的解答是从业务中找点,从点深挖出一条线。这句话懂或不懂的慢慢体会,看到了一条对于我而言可能是正确的到路,值得我去尝试。

简历上面不熟悉的技术千万别写,面试官会问到让你无话可说。在面试过程中,千万记得不会的就是不会,别虾扯蛋,没用的,只会给自己减分,诚实一点会更好。

个人总结: 
在技术面试完之后,和大部分的面试官都交流了一下,问了他们我有哪些不足的地方,得到的结果出奇的一致:理论知识充足,实践欠缺。排除工作时间,仔细想想自己走的路,一直有些太浮躁了,盲目的追求新技术,微服务,新utils,对每一个点却没有深入的研究,缺乏实际的技术实践。接下来要沉下心,从实际业务场景触发,沉淀自己的技术实践能力。也希望和我有一样感受的同学一块努力。

猜你喜欢

转载自blog.csdn.net/HD243608836/article/details/82418036