美文网首页JavaJava架构技术进阶
银四末班车,腾讯大牛献给Java程序猿一份面经礼包,你确定不看?

银四末班车,腾讯大牛献给Java程序猿一份面经礼包,你确定不看?

作者: Java余笙 | 来源:发表于2020-04-27 21:15 被阅读0次

随便聊聊(扎心)

2020银四末班车时期,你拿到了几个offer?薪资涨了多少K?是否安于现状?

今年由于疫情的影响,找工作相比而言确实困难许多,到现在市场才缓慢恢复运作。而在互联网企业,程序员“金三银四”跳槽面试并没有因为疫情的关系有所收敛。

虽然,现在已经接近银四尾声,但是大厂的程序员岗位的空缺还是有很多的。在这里,小编也收到了来自腾讯大牛整理出来的一份面经礼包,非常适合0—5年的程序猿学习。

需要这份大礼包的程序猿朋友可以在文末详见领取方式,助你冲刺人生另一个新高度

大礼包之面试技巧篇

面试一般分为技术面和hr面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)

1、简历上做一个引导: 在词汇上做好区分,比如熟悉C语言,了解python,精通Java这样的话对自己的掌握程度有个区分,也好让面试官有个着重去问,python本来写的也只是了解,自然就不会多问你深入的一些东西了。

2、在自我介绍做一个引导:一般面试的开头都会有一个自我介绍,在这个位置你也可以尽情的为自己的优势方面去引导。

3、在面试过程中做一个引导:面试过程中尽量引导到自己熟知的一个领域,这样的话你可以把整个面试过程往你熟知的地方引导,也能更倾向于体现出你的优势而不是劣势,但是此方法仅限于掌握合适的度,比如有的知识点是必会的而你想往别处引就有点说不过去了,比如让你说几个Java的关键字,你一个也说不上来,那可能就真的没辙了。

4、面试过程中展示出自信:面试过程中的态度也要掌握好,不要自卑,也不要傲娇,自信的回答出每个问题,尤其遇到不会的问题,要么做一些引导,实在不能引导也可以先打打擦边球,和面试官交流一下问题,看起来像是没听懂题意,这个过程也可以再自己思考一下,如果觉得这个过程可以免了的话也直接表明一下这个地方不太熟悉或者还没有掌握好,千万不要强行回答。

技术性问题如何回答?

  • 勇于提问:面试官提出的问题,有时候可能过于抽象,让求职者不知所措,或者无从下手,因此,对于面试中的疑惑,求职者要勇敢地提出来,多向面试官提问,把不明确或二义性的情况都问清楚,还可以体现出你是个爱思考的求职者。

例如,面试官提出一个问题:设计一个高效的排序算法。求职者可能没有头绪,排序对象是链表还是数组?数据类型是整型、浮点型、字符型还是结构体类型?数据基本有序还是杂乱无序?数据量有多大,1000以内还是百万以上?此时,求职者大可以将自己的疑问提出来,问题清楚了,解决方案也自然就出来了。

  • 高效设计:完成基本功能+考虑更多的内容

以排序算法为例:时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?是否考虑了相关环节,如数据的“增删改查”?是否考虑了代码的可扩展性、安全性、完整性以及鲁棒性。如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑分布式系统架构?是否考虑了开源框架的使用?

  • 伪代码先行:有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以求职者可以<u style="-webkit-tap-highlight-color: transparent; box-sizing: border-box;">首先征求面试官的同意,在编写实际代码前,写一个伪代码或者画好流程图</u>,这样做往往会让思路更加清晰明了。
  • 控制节奏:如果是算法设计题,面试官都会给求职者一个时间限制用以完成设计,一般为20min。完成得太慢,会给面试官留下能力不行的印象,但完成得太快,如果不能保证百分百正确,也会给面试官留下毛手毛脚的印象。速度快当然是好事情,但只有速度,没有质量,速度快根本不会给面试加分。所以,<u style="-webkit-tap-highlight-color: transparent; box-sizing: border-box;">编者建议,回答问题的节奏最好不要太慢,也不要太快,如果实在是完成得比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真检查一些边界情况、异常情况及极性情况等,看是否也能满足要求。</u>
  • 规范编码:回答技术性问题时,多数都是纸上写代码,离开了编译器的帮助,求职者要想让面试官对自己的代码一看即懂,除了<u style="-webkit-tap-highlight-color: transparent; box-sizing: border-box;">字迹要工整外,最好是能够严格遵循编码规范:函数变量命名、换行缩进、语句嵌套和代码布局等。</u>同时,<u style="-webkit-tap-highlight-color: transparent; box-sizing: border-box;">代码设计应该具有完整性</u>,保证代码能够完成基本功能、输入边界值能够得到正确的输出、对各种不合规范的非法输入能够做出合理的错误处理,否则写出的代码即使无比高效,面试官也不一定看得懂或者看起来非常费劲,这些对面试成功都是非常不利的。
  • 精心测试:任何软件都有bug,但不能因为如此就纵容自己的代码,允许错误百出。尤其是在面试过程中,实现功能也许并不十分困难,困难的是在有限的时间内设计出的算法,各种异常是否都得到了有效的处理,各种边界值是否都在算法设计的范围内。

测试代码是让代码变得完备的高效方式之一,也是一名优秀程序员必备的素质之一。所以,在编写代码前,求职者最好能够了解一些基本的测试知识,做一些基本的单元测试、功能测试、边界测试以及异常测试。

在回答技术性问题时,千万别一句话都不说,面试官面试的时间是有限的,他们希望在有限的时间内尽可能地多了解求职者,如果求职者坐在那里一句话不说,不仅会让面试官觉得求职者技术水平不行,思考问题能力以及沟通能力可能都存在问题。

其实,在面试时,求职者往往会存在一种思想误区,把技术性面试的结果看得太重要了。面试过程中的技术性问题,结果固然重要,但也并非最重要的内容,因为面试官看重的不仅仅是最终的结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题的能力。

所以,求职者在与面试官的“博弈”中,要适当地提问,通过提问获取面试官的反馈信息,并抓住这些有用的信息进行辅助思考,进而提高面试的成功率。

部分常见面试真题篇

  • tomcat的配置,tomcat从配置到启动的细节过程,tomcat优化
  • hashmap介绍一下
  • concurrentHashmap、线程池,多线程的开启方式
  • jvm内存结构
  • jvm垃圾回收算法
  • mysql存储引擎,区别
  • mysql索引结构,事务、隔离级别,隔离级别每一级会出现的问题
  • 线程和进程区别,进程间的通信方式
  • linux基本命令,如何查看端口是否开通,端口监听命令,抓取文件关键字命令等
  • TCP和UDP区别
  • 三次握手
  • 介绍下Docker,什么场景使用
  • Http和Https的区别
  • Https怎么实现安全的加密传输
  • Tcp三次握手和四次挥手的过程
  • 什么是僵尸进程
  • 什么是孤儿进程
  • linux下常用的信号
  • linux系统调用函数
  • 共享内存是什么
  • tcp与udp的区别
  • 流量控制解决什么问题?采用什么算法
  • 拥塞控制解决什么问题,采用什么算法
  • 关闭连接的四次挥手
  • 操作系统一个栈一般多大
  • 讲讲快排原理,特点
  • 常用排序算法
  • 红黑树了解吗
  • 红黑树比平衡二叉树的优点在哪里,为什么
  • 数据库常用的索引是什么
  • hash算法了解吗?用到哪里
  • redis锁怎么实现
  • 为什么不用乐观锁,而是用redis
  • redis为什么性能更高
  • redis的基本数据类型
  • redis的底层数据结构

由于篇幅原因就不一一展示了,需要领取这份面经礼包的只需要关注+转发,然后私信【礼包】即可免费领取!



相关文章

网友评论

    本文标题:银四末班车,腾讯大牛献给Java程序猿一份面经礼包,你确定不看?

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