美文网首页
三年经验Java开发面试(1)

三年经验Java开发面试(1)

作者: 小花生_322e | 来源:发表于2019-11-11 19:40 被阅读0次

没有准备的面试,就跟没有枪炮的上战场一样,最后往往会死得很惨。  ----------- 2019.11.11


到目前为止答主面过三家公司,全都是内推的公司,都有前同学或前同事。


第一家 地点滨江:

话说第一家根本没有经历任何的技术面试。主管一上来就说我们公司技术不难的,我们公司不用多线程的。

答主面试的是一家有五六百人规模的公司,面试我的直接就是技术部的大leader,就是那种坐上管理层很多年了也不怎么写代码了的大佬。

可能是因为大佬主业是做通信方面的东西吧,对互联网这一块的技术栈有限,就在我面前吹了一通牛皮并且说了一通互联网公司的不好。在答主的镇定自若和溜须拍马之后居然给我发了offer。而且我当时因为不是很想去(技术比较老旧的原因),薪资开得比较高,最后居然也应下了。

吸引的点:高薪;偏传统行业,稳定;承诺不用加班(并且内推的我同事也告知不用加班)

缺点:技术比较老旧;公积金交最低的4400一档;地点较远;而且我也不是很习惯那一套领导方式 

anyway,我最终的决定是不去,然后我很快就接受到了这个社会对我毫不留情的教育




第二家 地点余杭:

典型的互联网公司,发展规模挺大,人员上千。

面试结果:GG。

上午技术一面:

1.你先自我介绍一下

2.介绍一个最近的项目

3.ArrayList和LinkedList的区别

答:其实就是数组和链表啦,但是语言组织能力和措辞能力很重要。你已经面的不是初中级开发了,不再是你蒙圈了一下然后说我想想然后回答出数组和链表 面试官就会觉得你不错的年纪了。他只会觉得你怎么这么基础的问题都要想哦。

4.static关键字和sync关键字修饰的方法 和仅用sync关键字修饰的方法有什么区别

5.问了一些MySQL的问题,涉及到具体情境的。

答:如果这个时候,你能根据面试官的情境和你的项目,答出一些具体的表来举例子,感觉有加分。

我就很low,强cue行锁和表锁,想举例半天举不出来。

6.MySQL的优化

答:答了索引,边答边觉得自己low。哇,我得自信啊老哥,我这也太不自信了吧!

7.kafka用过吗

8.我看你简历上写了魔杖的性能优化,你能讲讲做了哪些优化吗

9.缓存主要用于哪些数据(适用的场景),你说你用了缓存,在update的时候,缓存怎么做

没有get到问题的点,最后面试官自问自答说适用于一些不太会被改变更新的数据。

10.JVM的分区,和每一个区放的东西讲一下

答:堆,栈,方法区,本地方法栈,程序计数器

比如你new一个对象,你的对象模板是在方法区中的,new出来的实例是在堆中的。方法是放在栈中的,方法的调用顺序是放在程序计数器中的。

11.GC的时候用到的算法讲一下

答:YGC的时候用到了复制算法,FGC的时候用到了标记清除,标记整理。

12 redis在你们项目中的使用说一下,

13.redis分布式锁知道吗

14.记一次印象深刻的故障

15.代码中有遇到循环引用吗,可能出现的场景讲一下

16:没问过你spring的问题,问个Spring的问题吧,讲一下IOC和AOP

17:  我插了一句嘴,可以问问我多线程的,结果问了我lock 比 sync的优点

答:倒地,脑子短路,其实我是知道的,面试的时候死机了。而且主动询问问题这种情况很找死。

1.sync的唤起notify是只能随机唤起或者唤起所有notifyAll, lock的signal唤起可以根据Conditation来指定唤起

2.sync只能实现非公平锁,lock可以实现公平锁和非公平锁

3.lock可以显示的实现获取锁和释放锁,sync不可以 (lock如果没有主动的释放锁的话,可能会出现死锁;sync是自动释放锁,所以不会产生死锁)

4.sync是关键字,lock是类

5.lock可以让等待锁的线程中断,超时机制,以及可以得知有没有成功获取锁等等,它有很多方法供我们调用。sync则不行

底层 sync是基于 object 的wait/notify,lock 是基于condition的await/sigal

我当时就状态没调整过来,很多时候都处于懵逼的状态,脑筋也没有动起来。小哥哥人很好,很多问题我说不知道了他也说没关系,最后还给了我一次二面的机会。致敬。耗时大约是30分钟吧,总结就是多引导面试官讲话,他会对你有好感。但可惜老子面试的是P6,在硬技术面前,技巧都是渣渣。


下午的技术二面,就是主管面:

1.还是自我介绍和项目介绍

2.你觉得项目中遇到最难的技术是什么

答:我算是答了线程池吧

3.你在线程池中,怎么设置它的那个线程数(标红)

答:按照CPU的性能来,如果4核8G核心线程数就设10

4.如果让你设计一个缓存框架,你怎么设计(标红)

答:强答了一些缓存的东西

1.快速命中(Mz的东西)

5.举个你项目中用到了抽象类的例子

6.项目中遇到的难点

答:强答了业务逻辑,和技术方案

7.redis的使用,一般你怎么设置超时时间,redis的分布式锁有用过吗

8.我看你简历上写了kafka,你能讲一下吗

9.最近一个月都在做什么,有学习吗(标红)

答:应该说最近在看书的,看JVM和多线程,因为这一块我准备了下的。就是讲话要有气势且自信

评价:要的人是P6,不符他们的要求。




第三家 地点西湖

这次是一个电话面试,耗时24分钟。

电面结果:GG。

1.请你先自我介绍一下

2.请跟我介绍一下你的项目

答:项目介绍这边我可能说的不符合他的点,一直在和我确认 和反问。我还比较熟哦,但是他后面嫌我介绍的不够简洁。

3.魔杖这个项目你主要做了什么

答:我能说我主要做了增删改查吗,就是没有准备啊,然后临时的语言组织也很差

4.我看你项目用到了redis,你能跟我说一下redis在项目中的具体使用吗

5.你们是只用了spring boot 还是用了spring全家桶,那你说一下spring boot 和consul这个框架是怎么架构的,整个服务

6.用到了consul,你说一下你们是怎么用consul的

答:很白话的说了一下我们咋调consul的,一边回答一边觉得自己就像是API调用工程师。自信啊自信,重申!面试的时候没有自信是万万不行的,而且讲道理就看前公司,在同期的三年经验里面,我也是算还不错的。毕竟是拿4个月年终奖的人!!!

7、consul的调用不是集群吗,你怎么确保一台机子应该调到一个集群的哪台机子嘛(标红)

答:问的文绉绉,差点听不懂,我就说负载均衡么。然后问负载均衡的内部机制你了解过吗,哈哈,没有,债见!

8、我看你简历用了ots嘛,如果MySQL的数据和ots的数据储存不同步,你怎么处理(标红)

答:我。。。哎。然后面试官看我根本讲不出什么卵子来,就直接说好的可以了。

9、你平时工作会看什么书吗?你最近有在看什么书吗?

答:1念了一堆书名,2.说在看JVM

10、JVM的类加载机制讲一下,Class文件的生命周期讲一下

答:1 答出来了,2的话有点懵逼

最后面试官还给我总结了一下我面试的缺点,大致意思就是我在描述项目的时候罗里吧嗦,他要听的是项目的功能,我给他从前端到后台的逻辑都废话了一遍。他可能憋在心里不吐不快吧。

Spring也没问,多线程也没问。可能他当时就觉得我不怎么样所以不想问了吧。

评价:对做的事解释不清,不够深入。

这个评价我真的是,日了狗了,真的生气。


总结

面试的时候大致会在半小时,一般是聊的越久越有机会。

Java的知识那么多,很容易出现准备没有问,问了的没准备的情况。所以也很靠运气啦,如果那30分钟的时间能都问到你熟悉的知识就基本没问题了。当然你还要学会不动声色的自己指引话题。我现在只想自己能有一次面试能够完整的,自我感觉良好的度过那30分钟。而不是每次一面完,就马上感觉到了自己不行。

哎,总结一下就是 这三年我光干活了,也没升华什么技术也没钻研什么框架。

人家现在3年工作经验要的都是P6的人才,毕竟三年工作经验投的头衔都是高级JAVA工程师了,我面试的时候的确就不符他们的要求。

经验是绝对没有问题的,现在就是两个缺点:1准备不够充分 ;  2自信心不够强(不够厚脸皮)



后续

这个帖子我会加油继续更新吧,每次被打击了,把这些打击打字打下来 还是很能够安抚内心的。

更新到找到满意的工作为止。

相关文章

网友评论

      本文标题:三年经验Java开发面试(1)

      本文链接:https://www.haomeiwen.com/subject/fwqvwxtx.html