====================================================================================
面试一般来说是三轮,第一轮一般是视频面,第二轮可以选择视频还是现场(经验之谈还是视频好,现场太磨人了),第三轮基本上就稳了。如果还有的话,说明你被推到其他部门
==============================================================================
项目相关
-
介绍一个项目
-
为什么考虑使用Spark?
-
使用华为的服务减少了哪些运维工作?
-
你觉得项目中有哪些比较有意思的点?
-
数据处理方面做了哪些工作?
-
用Redis做了什么?使用过Redis的什么命令?什么情况下会用到flush?
-
如果一个信息更新非常频繁会怎么应对?
-
前面的结合自己的实际经验回答即可。
-
最后一题答使用了消息队列做缓冲。
-
手写代码
很经典的一个二叉树镜像问题,让我做两个事情:
-
如何将这个问题进行抽象(其实就是算法的思路)
-
实现算法
-
面试官看完我的代码后进行了追问:
-
Worst case下你的代码的时间和空间复杂度?
书本上的问题
-
面试官也注意到我不是科班出身,答得出来就答打不出来就算了(令人感动>_<+)
-
Windows系统中文件信息是存放在哪里的?
-
双击文件夹时,如何获取里面的信息?
-
了解TCP和UDP吗?各有什么特点?各举一个场景?
-
面试官很和蔼,人超nice的。前面的内容毕竟是自己项目的,答得较有底气;代码题以前也见到过,比较容易就写出来。但是操作系统的问题确实是一问一个懵,好在后面的网络正好前一天复习到。。。
我的提问
- 后端部门的业务怎么划分?
=========================================================================
一面技术后,够了大约十到十五分钟,就进入了二面。这次的难度进行了全面升级。。。
基本情况
-
自我介绍
-
介绍一个项目
-
说一下项目中难点
操作系统
-
进程间的通信方式有哪些?
-
哪种效率最高?为什么?
-
内核态在什么时候调用?
-
字节对齐有了解吗?
计算机网络
-
UDP最长长度是多少?(此时我回答了不清楚)
-
UDP的包头有什么?
-
包头中有多少个字节用来表示长度?
-
UDP最长长度是多少?
从这里可以看出来,面试官的提问很有技巧,通过一步步引导我思考,中间偶尔纠正我的错误,最终能把问题引回到最初。既考察了我的基础知识,也顺带让我学习了一波。
数据结构
-
最大堆有什么特点?
-
构造最大堆的过程?时间复杂度是多少?
-
堆排序的过程?时间复杂度是多少?
当时忘记构造二叉堆有坑,完全掉坑里了。。
算法
-
说明如何求斐波那契数列的第N项?
-
为什么你选择迭代而不是递归的方法?
-
怎么求根号N的近似值?要求精度在小数点后5位(我说了二分法并解释了大致思路)
-
你的方法的终止条件是什么?
-
不知道归在哪一类
-
最近在学习什么?(我回答说地理相关的开源组件,然后没再问下去了)
-
场景实现
-
两个系统,一个机器上有大约1k的小文件,共10G,系统间网络很差,怎么高效地把所有文件从一个系统传送到另一个系统?
这个问题花了很久的时间,我提出自己的实现后,会问我这样实现会有什么问题?还能不能继续优化(网络的硬件层面已经定死了,主要是应用层面怎么优化)?这方面确实不懂,基本只能胡扯,磕磕巴巴说了一些,但是面试官还是听了下去并引导我进行分析,但无奈水平太差提不出什么好点子(掩面哭泣)
-
手写代码
-
一个角色,从二维矩阵的左上角移动到右下角,每次只能右移或下移,生命值会随着遇到的格子里的数字加减(整数加负数减),到终点变成0就死掉。问初始生命值最少要多少才能安全抵达?
一开始说的是统计所有路径中最后血量的最小值,负数取反加一,正数为0。后来面试官补充说,在中途变成0也会立即死掉,而且在开头变0也会死。我一下子没反应过来思考了一下,面试官就主动降低了难度,说把条件设置成一维,且角色只能右移。虽然后面写出了代码,但他没有评价,大概也不太满意。
-
我的提问
-
对技术栈的要求?
一面感觉良好,但是二面感觉凉透了。计算机网络一问三不知,系统设计漏洞百出,数据结构踩了坑,算法题还主动被降难度=_=自己作为非科班出身的半路出家码农,确实还有很多需要补充的基础知识和技能。希望以后的面试能吸取经验教训,每次都能比前一次更顺利一点!加油
更新:没想到二面也通过,收到了预约三面的短信,而三面依旧是技术面。这次得要吸取教训,准备得好一点!
=========================================================================
项目
-
自我介绍
-
项目里的难点或者有趣的地方
-
此处面试官多次提问“难点在哪里呢”,看来有必要好好练习这一块Σ( ° △ °|||)︴
JVM
提问前面试官先问我Java、SpringBoot、MySQL、Redis的熟悉程度,我回答前两项较熟。这里是对着简历问的,可见简历不能瞎写。戏说不是胡说
-
什么是GC?为什么要GC?GC有哪些算法?
-
什么是垃圾?怎么判断它是垃圾?
-
什么是STW?为什么要STW?会带来什么影响?有没有减少STW时间的方法?
Java并发编程
-
什么是线程安全?
-
Java中确保线程安全有什么方法、工具或者容器?
-
(我刚说的)重入锁、倒计数器、循环栅栏等分别是啥?有什么用?在什么情况下使用?
-
了解CopyOnWriteArrayList吗?在什么条件下用它?
手写代码
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/912dece9ec1ff253a146e4f647a15c8a.jpeg)
最后
对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
再分享一波我的Java面试真题+视频学习详解+技能进阶书籍
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
漫长且无助。**
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
再分享一波我的Java面试真题+视频学习详解+技能进阶书籍
[外链图片转存中…(img-txdsgx6b-1713638581192)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!