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

2、TCP 和 UTP 有什么区别?

我在回答这道题的时候,也是非常简单着回答他们的区别,例如一个面向连接一个非面向连接,一个可靠一个非可靠,非常简单就答完的。

不过这道题是一个高频题目,按上面的那个回答,就算回答出来,我觉得也是一点优势都没有。因为这些简单的区别,99%的人都懂,我觉得我们应该再往深入回答,例如TCP有流量控制,拥塞控制,面向流以及基于这些区别,他们的使用场景等等。

不过我并没有回答,不是我不知道,而是我想假装不说,等着他来问,因为我听说面试官都会一直往深问到你不会为止,然而现实是他并没有问,换话题了。感觉自己错过了一些表现的机会。

这里我想说的就是:如果你知道,你可以多说一点,千万别像我这么傻,等着别人来问。

3、写个快速排序

和算法有关的,我觉得自己还好,写的虽然不是特别快,但感觉自己写的还好,无论是从代码的排版(因为这个一般都是在笔记本写的,不可能给你IDE),以及代码的简便程度,我觉得都不错,这里我想说的就是,自己平时写代码的时候,一定要注意排版,别老是依靠IDE给你一键排版。

虽然我已经写出来了,不过他之后让我说下快速排序的步骤,我老实说了,不过我觉得,这些题都太简单,如果面试官的很基础,你也答的很基础,我觉得没啥优势,对于快速排序,我本来想补充的,例如对中轴的选择问题,与其他排序算法的一些比较,应用场景等,不过,我是想着等他来问我……

按照我这样写文章的话,估计得上万字,我下面简便说下就行了。如果你们感兴趣我这么啰嗦的话,下次我再来吐槽说说我回答的不够好的地方。

4、一条SQL执行的很慢的原因?(之前写过文章,建议看看)

5、MySQL有哪些存储引擎以及他们之间的区别(我其他引擎忘了名字叫啥)

6、如何查看SQL语句的执行状态,知道这条命令吗?(我当时MySQL其实几乎没学,很多都不知道)

7、qq用的是tcp还是udp(两种都有涉及)

8、说说jvm内存模型(其实并没有JVM内存模型,只有Java内存模型以及JVM内存结构,你要问清楚是哪个再答,我当时是答了Java内存模型,面试官一面懵逼)

9、JVM内存结构中有栈堆等,为啥要用栈这种数据结构?(主要是操作简便,快速)

10、说说垃圾回收?(老年代,新生代,永生代的区别等,各自使用的回收算法,新生代又分eden和survivor区等)

11、说说aop和ioc

12、大致看过哪些书?有逛技术论坛的习惯吗?说几个你常见的技术博客平台?有去逛过国外的技术博客吗?看的懂文档吗?

总体上一面比较简单,面试官没有深入问,不过问的很广,这里问一些,那里问一下。感觉自己答的还好,也顺利过了。第一次面试收获还是挺大。

1、对于懂的一定要多说,可以延伸,只要面试官不打断你的回答。

2、对于高频面试题,一定要自己模拟说一下,而且这些题一般不难,一定要多延伸,不然没啥优势。

3、感觉以后面试不那么紧张了,也就这么回事。

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

提前提二面

几天后收到复试通知,二面是电话面,二面操作系统和Linux问的有点多,我二面感觉自己就挂在Linux上,我Linux不大懂,被问了好几个个基础的问题都不懂,自己也是醉了,感觉自己应该和面试官说一下我Linux还没学。操作系统很多细节也忘了,说说二面的面试题吧。

1、说下四次挥手,什么时候会出现time_wait状态?(我扯了一下,面试结束后,发现自己弄错了,真想给自己一巴掌,主要是,其实我对三次握手和四次挥手没去准备过,虽然看过挺多文章,但是具体的没记住,凉凉)

2、红黑树知道吗?说说,为啥有了平衡树还需要红黑树?(平衡树太严格,插入很容易打破平衡,经常需要调整,而红黑树是一种折中方案……)

3、红黑树是如何保证查找效率不会太低下的?(我后面再写一篇关于红黑树,B+树,平衡树这些的文章吧,现在先给出这些遇到过的面试题)

4、红黑树在调整的时候,不是会用到左旋右旋吗?说说会不会出现无限左旋右旋的情况,如果不会,那最多旋转几次?

5、为什么索引能加快查找效率?

6、说说B+树是怎么分裂、合并的,知道具体步骤逻辑吗?

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等的运行情况,然后……其实我没有上线过项目,也没有这样的经历),他说没事,假如遇到这种情况你会怎么分析?(我下面说一下我是怎么扯的)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。
当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。

更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务

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

jK5-1712757980375)]

[外链图片转存中…(img-GPL1Ffst-1712757980375)]

[外链图片转存中…(img-eGWUTTXK-1712757980375)]

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

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值