Hello World,我是老田。今天给大家分享的是一位朋友去今日头条的面试历程(一位本科大三的科班生,目前在美团实习)。

以下是他的一面历程,一共分为6个环节:

如果你想攀登高峰,切莫把彩虹当作梯子。

1、自我介绍

对自己的情况做了有一个简单的自我介绍后,面试官问了一句对工作的语言有没有要求(因为本人是Java技术栈)。

如何自我介绍,如何写简历,这些都是提前准备好的。千万不要等着临场头脑发热,最好是能背一遍,但是不要面试官觉得你在背。

2、聊项目

面试官:说说你最熟悉的项目,用了哪些技术栈,项目中遇到了什么挑战?

然后,选了一个最近在做的项目,介绍了整个项目使用了哪些技术栈,业务整体是怎么样的,遇到过某某问题,后面通过某某手段解决了。

然后,面试官对项目进行提了一些技术问题,问题如下。

为何需要去中心化?

你觉得微服务的优缺点有哪些?

去中心化的好处?

分布式如何保证一致性?

单点故障,不可用,数据丢失后,如何保证一致性?

为何选择使用RocketMQ?MQ选型

你说小规模项目应用RocketMQ较好,为什么?为什么觉得跟Java技术栈比较契合?

Kafka和RocketMQ的比较?选型讨论了很久,消息的量级和MQ的延迟的关系

MQ如何保证消息不丢失?

MQ如何保证消息的幂等性?不重复消费

多个节点通过MQ发消息如何保证消息的顺序?

问了个向量时钟有了解吗?

简单说说一个java源文件到垃圾回收的整个过程

如何选择垃圾收集器?

说说JVM中的栈与线程的关系

熟悉哪些JVM问题排查工具?

3、操作系统

关于操作系统,一共就问了四个问题:

熟悉进程调度策略吗?

说说CFS?

友好度是啥?

如何计算出来的?

4、计算机网络

TCP可靠传输由哪些东西来保证的?

除了三次握手、四次挥手,数据传输过程中如何保证可靠传输?

通信最基本的要求是什么?(大概面试官想提示我,我没太get到)

点对点通信的要求?基本特点?(非常难以get到面试官想问我什么)

后来知道想问TCP的ARQ、滑动窗口、拥塞控制、流量控制、超时重传等等。

5、手写SQL

表1:学生表student(no{学号}, name{名字}) 表2:成绩表grade(no{学号}, grade{成绩}, subject{科目}) 给定一个学生姓名,求该学生的各科的成绩:

这里之前写的时候保留的是no和grade两列,面试官就问为啥要no,后面知道原来他想要把subject也放进结果里。。。

6、算法

单链表反转

输入一个链表,反转链表后,输出新链表的表头。

输入:{1,2,3}

输出:{3,2,1}

这个题有两种解法,请看代码:

//第一种方法是:非递归方法
/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:ListNode* ReverseList(ListNode* pHead) {if(pHead==NULL) return NULL;//注意程序鲁棒性ListNode* pNode=pHead;//当前指针ListNode* pReverseHead=NULL;//新链表的头指针ListNode* pPrev=NULL;//当前指针的前一个结点while(pNode!=NULL){//当前结点不为空时才执行ListNode* pNext=pNode->next;//链断开之前一定要保存断开位置后边的结点if(pNext==NULL)//当pNext为空时,说明当前结点为尾节点pReverseHead=pNode;pNode->next=pPrev;//指针反转pPrev=pNode;pNode=pNext;}return pReverseHead;}
}//第二种方法是:递归方法
/**
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:ListNode* ReverseList(ListNode* pHead) {//如果链表为空或者链表中只有一个元素 if(pHead==NULL||pHead->next==NULL) return pHead;//先反转后面的链表,走到链表的末端结点ListNode* pReverseNode=ReverseList(pHead->next);//再将当前节点设置为后面节点的后续节点pHead->next->next=pHead;pHead->next=NULL;return pReverseNode;}
};

递归的方法其实是非常巧的,它利用递归走到链表的末端,然后再更新每一个node的next 值 ,实现链表的反转。而newhead的值没有发生改变,为该链表的最后一个结点,所以,反转后,我们可以得到新链表的head。

注意关于链表问题的常见注意点的思考:

1、如果输入的头结点是NULL,或者整个链表只有一个结点的时候

2、链表断裂的考虑

总结

看完上面的面试,你觉得难吗?

以上题目答案在我的面试小抄里都可以找到,所以,再文章中就没必要再贴答案了。

参考

www.nowcoder.com/discuss/687513

面试小抄获取:

后端面试 23万,牛逼!

关注我,分享更多技术知识,记得把我公众号设置为“星标”!

期待您的点赞、在看、分享!

寻球友

欢迎加入我的知识星球,成为球友,我们聊技术、聊人生、聊理想。

下面是知识星球内容(加我微信,有优惠)

推荐阅读

  • 你不动,我就不动---观察者模式

  • 离职后,10天面试 4 家公司的总结

  • 一套Spring Cloud Alibaba视频教程

  • 后端开发人员,学习之路

  • 后端面试 23万,500多页,牛逼!

  • 112期面试汇总,建议收藏

面试现场:今日头条(一面已通过)相关推荐

  1. 2020年开春最新面试!今日头条 Android 面试题及答案 (已拿到 offer)

    面试时间:2019.12.29 1~3面.2020.1.03 4~6面.2020.1.06 HR面 面试部门 + 岗位:商业化 - 高级 Android 开发工程师 面试感想:整体面得比较累,基础面. ...

  2. 大厂音视频职位面试题目--今日头条

    作为一名IT从业者,不管你是否有跳槽的计划.时不时的去参加一些有针对性的招聘面试,对个人也是有好处的, 一方面可以了解大厂有哪些的热招职位,这些热招的职位往往能给表明社会上相关行业发展的热度,资本投入 ...

  3. 2020最新春招面经!今日头条28koffer已到手,分享下我的学习集合

    一声叹息 从去年9月3号,到今年3月20号,耗时6个月多的找工作经历终于是画上圆满的句号了,近200个日日夜夜的酸甜苦辣想必裸辞的亲尝者都能体会得到,下面想来复盘或者说总结一下这段经历.但不管怎么总结 ...

  4. android面试之今日头条/字节跳动 android社招面试(附答案)

    一面 自我介绍 注意点:说有亮点的.跳槽原因,从各个点尽力彰显自己优势.技术特长 手写代码:计算View树上所有view的数量,参数ViewGroup 本质上就是数据结构多叉树递归层序遍历+Andro ...

  5. 今日头条怎么刷文章阅读量_今日头条能刷阅读量吗?

    今日头条目前已成为主流自媒体平台,每日流量可谓非常之大.很多做自媒体的朋友一直发愁如何提高今日头条等自媒体平台的阅读量.自头条号推出新规则后,让很多新手很高兴,因为不用苦苦转正过新手期直接都开通了广告 ...

  6. 今日头条前端面试总结

    今天早晨刚刚结束了今日头条的前段实习生面试.总的下来感觉自己答的一般,感觉以前看东西太浅尝辄止了,导致了今天的面试有很多细节答不上来.现凭着记忆记录一下碰到的题目. 上来首先是自我介绍,然后问为什么选 ...

  7. 今日头条后台岗位实习面试记录

    在3月初通过内推投递了今日头条,2日后收到电话确认视频面试.视频面试在牛客网上,会有一个视频以及一个双方都可以看得到的写代码的地方.目前准备的太不充分了,基本就是靠原来的记忆去裸面,代码题基本都没写过 ...

  8. 已入职今日头条!并附上8面面经

    今天正式入职了字节跳动.工号超吉利,尾数是4个6.然后办公环境也很好,这边一栋楼都是办公区域.公司内部配备各种小零食.饮料,还有免费的咖啡.15楼还有健身房.而且公司包三餐来着.下午三点半左右还会有阿 ...

  9. 最全BAT算法面试130题:阿里、百度、腾讯、京东、美团、今日头条

    [百度.阿里.腾讯.京东.美团.今日头条]等公司都会必考关于算法的面试题目,今天总结算法和题目如下: 算法基础: 第一:复杂度估算和排序算法(上) 1) 时间复杂度和空间复杂度 2)认识对数器 3)冒 ...

最新文章

  1. HTML页面展示遇到问题
  2. 在线作图|如何绘制一张变量相关图(PCA)
  3. PHP 设计模式六大原则
  4. 根据文件扩展名得到文件对应该类型Icon方法
  5. 重学TCP协议(7) Timestamps 选项
  6. 程序员35岁前需要完成的10件事
  7. 一文带你熟知ForkJoin
  8. clion配置opencv3.20(cmake+tdm-gcc)
  9. 一个老者给年轻人的几个忠告
  10. 2021年SWPUACM暑假集训day2并查集算法
  11. Keras实现卷积神经网络
  12. 在VMware安装Windows server 2003步骤
  13. python模拟网页上传文件_python模拟网页上传文件
  14. 《人月神话》出版后的网友评论
  15. tinkpad e450c 进入 BIOS
  16. [Redis]处理定时任务的2种思路
  17. ArcGIS中将中文经纬度标记转换为英文标记
  18. 中级软件设计师-软考心得
  19. 关于Kubernetes 中通过 Kustomize 实现YAML资源文件组合与继承的一些笔记
  20. 漫步微积分四——导数的定义

热门文章

  1. 云虚拟机和普通虚拟机有什么区别
  2. 胶囊网络用于推荐系统问题(MIND,CARP)
  3. 写着代码的插画师—王凌 |WLOP|
  4. SpringBoot JPA 懒加载的问题 ---No session
  5. kubeadm更改配置
  6. linux下qt打印功能如何实现,Qt Graphics-View的打印功能实现
  7. 记录一下家里双路由实现wifi漫游功能
  8. 11.监视属性——watch
  9. Enhancer云开发平台发布了!打开浏览器写 SQL 做配置就能一站完成系统开发
  10. Google Colab中把pyth3.7版本更换成python2.7