腾讯Java面试都挂在二面,分享下失败经验+傻傻的面试经历

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

7、你项目用到redis,知道跳跃表吗?说说他是怎么实现的,查找时间复杂度?

数据结构这部分我觉得自己答的还行,几乎都答出来的,不过下面的Linux和操作系统有点惨,怪自己没准备,不过面试就是一个查漏补缺的过程吧。

8、Linux的proc目录有啥用?(忘了,,,,)

9、怎么查看端口的状态?(有条啥命令来着的,忘了)

10、怎么查看某个进程的状态?(也忘了,呵呵,,,,,)

我简历上是写着熟悉Linux常用命令,然而一个也没答出来,尴尬啊,其实我会用的是那些 ls, cp, mkdir, tar等常用命令,对于线程、网络相关的都不会,感觉危险了,这么基础的问题都不会。

11、说说什么是进程,进程包括哪些数据?进程切换的过程是怎么样的?

12、如果想要让多个线程执行到某个点,都达到之后再继续执行,可以用java的那些类来实现?(CountDownLatch和CyclicBarrier这两个)

13、什么是反射?反射有啥用?

14、说说垃圾回收,jvm是如何知道这个对象可以回收的?计数法有啥问题?如果我们想要指定某种垃圾回收算法,该怎么设置?

15说说aop(这个问的刁难了,我该说的都说),他说,那我也可以通过自己配置文件来实现这种切面啊,为啥就要用AOP呢?(他问的问题就相当于,我用servlet也能使用实现一个网站啊,为啥要用spring这些框架呢?我当时应该要吹一波spring中AOP带来的好处的,不过我没说,感觉自己应该吹一下的)

15、接着是问了我那个高并发秒杀系统的项目,说了里面的线程安全问题,然后我这个项目早忘光了,自己也没准备,代码我不是自己敲的,直接看视频的。自己没做过什么项目,就充当了,结果面试官问了一下线程的问题,我一直没get到点,搞的自己也好懵,最后才知道他说的是啥,不过项目这块答的也不好,主要自己也没动手弄过,又是去年快速看视频学的。

总体上,二面除了Linux答的非常非常不好,还有四次挥手说错了,线程包括哪些数据说的也不全之外,以及项目感觉有点被认为不是我做的之后,其它感觉还好。不过。一个多星期后,结果出来,挂了。

不过我也不意外,知道自己有很多需要补的,面试有时运气不好,可能连续问到好几个不好的,估计就得挂了,不过这没方法,最好的做法就是面试过后把自己不足的补上来。

腾讯Java面试都挂在二面,分享下失败经验+傻傻的面试经历

常规网申一面

常规网申的笔试题中是20道选择题+3道编程题,过几天就收到面试通知了,有了前面两次之后的面试经验之后,也了解到腾讯是特别喜欢问操作系统+计算机网络+Linux的,于是我把这方面的高频面试题都好好准备了,Linux 进程等相关都准备了,操作系统也大致准备了,下面说说这次涉及到的面试题。

1、说说网络建立连接之后是怎么关闭的(其实就是四次挥手,我详细说了,之前写过文章)。如果出现大量time_wait 状态的连接是怎么回事?(我说了第四次挥手出现了丢包、超时等),假如不会出现丢包、超时等,网络非常流畅呢?(说了短连接导致的)那怎么解决?(我说了限制最大连接,用队列来缓冲),问我还有其他方法吗?(我不大知道,好像面试官不大满意我的回答。不过最好的做法应该是修改 time_wait 等待的最大之间,把时间改小一点)。

2、说说IO阻塞与非阻塞是什么?各自有啥好处?知道多路复用吗?了解过 select 吗?说说他与 epoll 的区别。

我知道的也不是很深入,就常规答法,他问啥就答啥。这里我要说一下,我觉得很多人可能混淆了阻塞、非阻塞与异步、同步的概念。我实话,我觉得自己已经理解了,结果我看了好几篇文章,发现自己反而不懂了,懵了,总觉得缺了点什么影响我对阻塞非阻塞与异步同步的理解,说实话,我看了大概有10篇文章,有80%我觉得都没有说清楚阻塞非阻塞与异步同步的本质区别。这会影响你对同步阻塞,同步非阻塞,异步阻塞,异步非阻塞的理解。有时间我再来写一篇文章说说他们的区别,相信看了你就一定懂了。

3、知道乐观锁吗?说说他们适合应用的情景。

4、说说自适应锁,与其他锁相比,他的优缺点,什么情况下你觉得可以用自适应锁?(之前写过几种锁的文章,不懂的建议看)

5、你平时开发是在Linux上开发的吗?(我靠,Linux上开发??那不是得对Linux上很熟悉?我虽然准备了Linux面试相关,可是这Linux上开发压根没体验过啊,我马上怂了,马上说没有,并且还加了我对Linux不熟,这门课刚学没几天。之后他就不问了Linux了,然后接下来我就扎心了)

6、那你平时就是在windows下开发了,那如果你平时项目要上线,这个项目的性能突然很差,你是怎么定位问题的?(我靠,在下从来没有上线过项目,连用心写过项目都没有,这下完,我迟疑了一会),他补充说,例如你可以通过观察你电脑的cup, 内存,IO 的指标来进行行定位,可以分析下吗?(可以打开任务管理器来查看cup等的运行情况,然后……其实我没有上线过项目,也没有这样的经历),他说没事,假如遇到这种情况你会怎么分析?(我下面说一下我是怎么扯的)

心想,扎心了,其实我不大知道究竟要分析啥,好吧不管三七二十一了,然后我开始扯了:

1、如果cup一直很高而其他地方内存,IO很低的话,那很有可能项目里面有某些东西在疯狂运行,但却没啥用,很有可能就是自己设计了乐观锁,但竞争的线程太多,导致一直做无用功。

2、如果磁盘操作很高,但cup很低,这是意味着项目一直在做IO操作,很有可能是SQL语句写的不好,导致扫描了大量的磁盘,然后我就针对SQL语句的问题开始扯了,例如没有用上索引啊,选错索引啊,扯了一大堆,哈哈。(心想,舒服,刚好写过sql语句执行的很慢的原因有哪些)。

7、说说进程与线程的区别?进程有哪些通信方式,(我说了共享内存,消息队列,管道,信号量,套接字,信号驱动),他问还有吗?(我说其他的不知道了),描述下这些具体的通信方式(我有些具体的给忘了,大致描述了几个)

8、说说快速排序的思想,删除单链表倒数第二个节点,你会怎么做?

9、了解MySQL事务吗?说说ACID是啥(我靠,我对事务的隔离理解还强,研究过隔离是如何实现的,然而,,,我突然短路,ACID的D忘了啥,就像你高中那会对一首古诗背的很熟,然后突然就忘了哪句,心里有点扎心),那你具体说说ACID是啥(原子性是,,,隔离性是,,,,一致性?????,我靠,我觉得自己对这四大特性很理解,感觉看名字就知道是啥了,然后说到一致性的时候,我自己的心中产生了疑问,感觉自己并没有真正意义上理解了一致性,然后我没说出来)

心中那个苦,一致性都没说出来,其实我是可以说出来的,但是我总觉得缺了点什么,就像你看了几篇文章觉得自己懂了,结果让你在看几篇文章,你感觉自己有点醒悟了,然后突然发现自己并没有真正意义上的懂,我查了好多篇文章,呵呵,千篇一律,都不能解答我的疑惑,说实话,别觉得自己懂了,其实你根本就没有懂,最后是懵逼了好久,才觉得自己应该是懂了,有时间也要写一篇事务的四大特性的文章。

说实话,网上的很多文章,真的是千篇一律,当你产生了疑惑,很难找到解答,因为你会发现,这几篇说的都是一样的,那个你感觉特别重要的疑惑都没有说到。好吧,不吐槽了,等下要被大佬门怼我写的文章了。

一面大致说了这么多,有些忘了。比起提前批一面,我觉得自己在表述上好多了,也会扯了,这里我想跟大家说的就是,问题就那些,一定要搞懂,延伸,要理解,该背的要背,例如进程有哪些通信方式。如果要面试腾讯的时候,计算机网络、操作系统,Linux这些底层的,要学好,尽管你是面试 java 岗位的,可能他一个 Java 的问题都不问的。

腾讯Java面试都挂在二面,分享下失败经验+傻傻的面试经历

想杀了自己的二面

二面我应该就是个傻逼吧,自己给自己挖坑了,最近这些题一直在刷题,复习基础,对于数据结构,算法题,Java,操作系统什么的,自己也想看看有哪些不足,然后他一开始就叫我介绍项目。

1、说说你做的项目。

其实这期间我为了应付以后的面试弄过做过一个项目,不过还没弄好。然后我之前不是说了自己有个很水的高并发秒杀系统项目吗?我自己也没啥项目经验,然后我觉得高并发也是很牛逼的样子,就打算用它了,简历上也写了。不过这个项目我自己没实操过,看视频的,很短,几个小时而已,用到了redis等,不过我已经准备了很多redis相关的知识了,怎么优化的也准备好了。

现实是,呵呵,我被怼的体无完肤

优化之一就是通过减少事务持有锁的时间来优化的,例如我们秒杀一个物品的话,如果减库存和插入订单两个操作都成功的话,代表秒杀成功,这两个操作会在一个事务里完成。问题来了,是先减库存呢?还是先插入订单呢?

我说了先插入订单在减库存能够减少事务锁的持有时间,然后我就被面试官怼死了,如下:

面试官:你觉得你这个优化有用吗?

我:有啊,可以减少锁的持有时间(确实可以减少锁的持有时间)

面试官:那你说说提高了多少并发量?

我:这个,,没测试过(我是看视频的,自己也没有这样的测试工具,有点尴尬,连测试过都没有??)

面试官:那你说说这条事务执行需要多少时间

我:我,,好像忘了具体数据,大概是0.00几秒吧。

面试官:你自己都说0.00几秒了,这么短时间,你觉得你的这个优化,用处大吗?有数据来支撑下吗?

我:,,(真的自己给自己挖坑了,早知道随便介绍下就好了,不主动说自己的优化了过程了,毕竟自己没实操过)

面试官:你这个系统能扛多少并发量?

我:…没测试过(我觉得,面试官觉得这个项目是假的了,可能觉得我是从网上随便找的,然后来应付面试的,我觉得自己凉了,欺骗可是非常严重的)。

面试官:那你说说,完成一条请求用了多少时间(测试最大的并发量可能需要相应的工具,他可能为了再次确认我的真伪,故意是一条请求的?这样就不需要工具了)

我:……没测试过(好吧,我的心已凉)

面试官:好吧,就说到这里,你用过lowJS吗?

我:啊??lowJS,什么鬼东西?而且他的声音有点小,我再次确认,是指lowJS吗?他说是,我说没听说过(后来才知道,他说的是Node.js,,,,,,麻痹,,,)。

面试官:你还有啥问题要问的?

呵呵,,,已经凉了,这次面试真的是自己给自己挖坑,面试官肯定是知道我项目是伪造的,这是非常严重的事情,然后这个面试大概是持续了10几分钟,其他的面试官的也没问了。想找给人吐槽下自己。

然后,明天就查到挂的信息了,之前二面是一个星期多才查到挂了,这次是十二个小时之后就收到挂了,我也知道10000%挂的了。此刻需要一波安慰!!

总结

总结就是一首凉凉送给自己,还有就是有一些建议,当然,这也是我自己给自己的建义。

1、高频面试题,别停留于表面,大家都懂,说的很表面没啥优势。

2、别以为自己懂了,如果可以,最好自己尝试描述一下,你可能会描述的很没有逻辑。

3、好好准备一个项目吧,一定要自己脚踏实地做一下, 别像我,被怼的体无完肤。

4、框架真的问的很少,好好打基础,数据结构与算法,计算机网络,操作系统,Linux 进程等相关的命令。

5、面试的第一关是笔试,一般都是编程题,建议要刷刷题,不然面试的机会都没有。

如何获得这份优质的资料呢?

最后

经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。







由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!**

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-BrYj2Fb6-1713357568026)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值