剖析今日头条技术面试过程以及应该如何准备?

640?wx_fmt=jpeg

作者:“想去大厂的小菜鸡”

https://juejin.im/post/5c14e7f051882562502f077


国庆期间公司的项目很闲,很多人觉得没意思陆续走了,我也考虑到自己的发展,从9月底开始面,面到11月底,三十家公司。我从不打没准备的仗,我是一个喜欢总结经验的人,每经过一场面试,我都会那个本子记录下来,或者哪些问题是自己之前没遇到过的,或者是哪些问题是新遇到。通过一段时间的备战,面试,拿了几家offer ,最终我入职了头条。


640?wx_fmt=png

 准备内容


算法


  1. leetcode

    http://leetcode.com/

  2. careerup

    http://www.careercup.com/

    http://hawstein.com/posts/ctci-solutions-contents.html

  3. glassdoor

    http://www.glassdoor.com/index.htm

  4. topcoder

    http://www.topcoder.com/

  5. zoj

    http://acm.zju.edu.cn/onlinejudge/

  6. july的博客

    http://blog.csdn.net/v_july_v/article/details/6543438

  7. mitbbs

    http://www.mitbbs.com/bbsdoc/JobHunting.html

  8. poj

    http://poj.org/

  9. 杭电acm

    http://acm.hdu.edu.cn/

  10. codeforces

    http://codeforces.com/

  11. 复杂数据结构的讲解及实现GeeksForGeeks: 
    http://www.geeksforgeeks.org/

  12. 一个比较牛逼的coding challenge网站: 
    https://www.hackerrank.com/

Java基础


        面向对象的特征:继承、封装和多态

        int 和 Integer 有什么区别;Integer的值缓存范围

        说说反射的用途及实现

        Http 请求的 GET 和 POST 方式的区别

        MVC设计思想

        什么是Java序列化和反序列化;如何实现Java序列化;或者请描述


Serializable接口的作用


        重载和重写的区别


进程和线程

        线程和进程的概念

        并行和并发的概念

        创建线程的方式及实现

        进程间通信的方式

        说说 CountDownLatch、CyclicBarrier 原理和区别

        说说 Semaphore 原理

        说说 Exchanger 原理

        ThreadLocal 原理分析;ThreadLocal为什么会出现OOM,出现的深


层次原理

        讲讲线程池的实现原理

        线程池的几种实现方式 

        线程的生命周期;状态是如何转移的


锁机制

        什么是线程安全?如何保证线程安全?

        重入锁的概念;重入锁为什么可以防止死锁?

        产生死锁的四个条件

        如何检查死锁

        volatile 实现原理

        synchronized 实现原理(对象监视器)

        synchronized 与 lock 的区别

        AQS 同步队列

        CAS 无锁的概念;乐观锁和悲观锁

        常见的原子操作类

        什么是 ABA 问题;出现 ABA 问题 JDK 是如何解决的

        乐观锁的业务场景及实现方式

        Java 8 并发包下常见的并发类

        偏向锁、轻量级锁、重量级锁、自旋锁的概念


数据库

        DDL、DML、DCL 分别指什么

        explain 命令

        脏读、幻读、不可重复读

        事务的隔离级别

        数据库的几大范式

        说说分库与分表设计

        分库与分表带来的分布式困境与对应之策

        说说 SQL 优化之道

        存储引擎的 InnoDB 与 MyISAM 区别、优缺点、使用场景

        索引类别(B+树索引、全文索引、哈希索引);索引的区别

        什么是自适应哈希索引(AHI)

        为什么要用 B+tree 作为 MySql 索引的数据结构

        聚集索引与非聚集索引的区别

        limit 20000 加载很慢怎么解决

        常见的几种分布式 ID 的设计方案

        JVM

        JVM 运行时内存区域划分

        常见的 GC 回收算法及其含义

        常见的 JVM 性能监控和故障处理工具类

        JVM 性能调优

        类加载器、双亲委派模型

        类加载的过程

        强引用、软引用、弱引用、虚引用

        Java 内存模型 JMM


在对上面的内容做了准备后,开始面试,先从小公司开始面,小公司1-2面技术,大公司3-5轮技术,一般都是一面基础,二面进阶,三面优化和场景,四面问规划,五面hr.

面试自我介绍 

被人没太多的优点,双非本科,只不过大学学的数学专业。英语水平一般。

优势:

1 大学拿过奥数三等奖,ACM 大赛二等奖,当你的优秀大学生。

2 良好的沟通交流能力

3.较强的学习能力和逻辑思维能力

简历写上,自我评价潜力好!此处有装逼的嫌疑。


劣势: 
1.16年毕业,经验不多,非常尴尬,上不上,下不下的情况。

2.毕业于双非本科,只要是本科就基本没问题,但有的公司要985.211的,并且还要30岁以内的。

3.前一家公司是传统行业,加入项目组时,项目稳定,每天就是有bug就修复,优化一下,其他时间就是学习的,聊骚各干各的,工作2年多跟在养老一样,每天都是 用一句话说就是编程5分钟,扯淡2小时,项目经验严重不足,很怕开发过很难的需求。

640?wx_fmt=jpeg


这一点是最伤的,很多公司看项目经历,结果你告诉面试官我写的需求都是垃圾。 

学习方式

我自己情况,项目和学历肯定无法加分的。我自己对此也有清晰的认识,因此我在平时抓紧空闲时间学习和复习技术点。

1.看面试题 
正常人第一步肯定都会看面试题,我也不例外,在看的过程中,我发现有些文章写的不错,对我帮助不小值得推荐 。

2.对问题深入理解 
在看面试题的过程,你会遇到一些自己没接触过的或者以前没深入学习过的知识,例如最常问的HashMap内部实现原理,这就促使你得开始去看jdk的源码或者是学习一些新的东西。看源码是很重要的一步,起步很难,但是会让你收益良多。

3.熟悉项目的代码和需求

把项目中不错的需求拿出来,看会,代码熟悉好,将整个功能的流程和涉及的东西吃透。项目是面试中必问的环节,一般是以一个功能点为基础展开问,因此你必须对这个功能有很深的认识,不能有模糊的地方。如果有时间,能把涉及到的知识点也搞懂最好。 


4.网上做题和刷题
头条会远程面试, 一般会做题。建议去本文开头的一些刷题网站多做些题目。

5.总结记录 
把自己每天学到的内容记录下来,可以让自己更有动力的复习,技术是一个枯燥的过程,你必须让自己时刻保持有动力。 

投简历、约面试环节

1.投简历渠道
BOSS直聘、猎聘网。拉钩等(一般不靠谱),找靠谱猎头也行。

 
2.简历不要海投 
为两个情况。 
1)没有社招面试经验:建议采取海投的方式,只要职位要求跟自己比较匹配都可以投,累计面试经验。


2)社招面试经验已经足够:投那些职位匹配、公司满意的职位。公司评价可以去看准网,企业查等。


3.投简历没下文
简历确实亮点不多,学历不好,项目不行,容易被HR给刷掉,因此他们看得最直接的就是你上家的公司和你毕业的学校,如果你不是从牛逼的公司/学校出来,可能会碰到和我一样的情况,应对的办法就是多投。

 

4.一天约几家面试合适? 
最理想的情况为2家面试,上午一般在10点左右,下午一般在2点左右。建议把理想的公司放下午,因为下午的时间比较充足,可以让公司更充分的了解你。我开始面的时候,每次都是上午面的不好,下午面的不错。 


5.是否该裸辞? 
我一开始是边上班边投,然后利用调休时间,或者请假去面试。后来,面试机会越来越多,请假太频繁了,自己都不好意思了,并且自己也已经有足够的信心,这个时候我选择了裸辞。


裸辞还有一个原因是,在面试过程中你会发现,遇到公司要人紧急的,如果你的入职流程过长可能错过这个公司。 


6.注意事项 
1)千万别迟到。 
2)做好特殊情况处理,带简历、充电宝、纸巾、伞。 


面试


1笔试常见的问题 
面试常见的问题上面给的面试题链接基本都有。


1 手写代码:手写代码一般考单例、排序、线程、消费者生产者 排序。

写SQL很常考察group by、内连接和外连接


2.面试1-5面总结 
1)让你自我介绍 

2)做两道算法题(刷题必中)
3)问Java基础知识 

4)java 高级进阶就是我准备的那些
4)问项目中指责和做了什么
5)业务情景问题,例如:你的一个功能上了生产环境后,服务器压力骤增,该怎么排查。 

6)对职业的规划
7)你有什么想问面试官

的 

8)问期望待遇


3.常问的知识要点 
1)集合相关问题(必问): 

2)线程相关问题(必问):  

3)JVM相关问题(必问)

4)设计模式相关问题(必问): 

5)数据库相关问题,针对Mysql(必问): 

6)主流框架相关问题:  
Spring的设计模式。 
Spring中AOP。 
Spring注入bean的方式。 
什么是IOC,什么是依赖注入。 
Spring是单例还是多例,怎么修改。 
Spring事务隔离级别和传播性。 
介绍下Mybatis/Hibernate的缓存机制。 
Mybatis的mapper文件中#和$的区别。 
Mybatis的mapper文件中resultType和resultMap的区别。 

Hibernate和Mybatis的区别。 
Spring MVC和Struts2的区别。

Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的。 


7)其他遇到问题: 

介绍下B树、二叉树。 

IO和NIO的区别。 

重载和重写的区别。 

栈和队列。 
接口和抽象类的区别。 
int和Integer的自动拆箱/装箱相关问题。常量池相关问题。 
==和equals的区别。 
String和StringBuilder、StringBuffer的区别。 
静态变量、实例变量、局部变量线程安全吗,为什么。

 try、catch、finally都有return语句时执行哪个。 
分布式锁的实现。 
分布式session存储解决方案。 
常用的linux命令。 


offer 流程

面试通过当然还有一些后续的环节

1)提交工资流水(大点的公司),学历,学位照片。

2)定薪

3)体检通知

4)背调 发offer。

5)入职材料 选择入职日期。

一些经验


   0 .千万别裸辞,别裸辞,别裸辞 我同事裸辞了,2个月了到现在还没找到工作。

1.先投一些普通的小公司,等面出感觉了再去面大公司。 
2.自己不会的技术简历不要写 

3.很多公司压待遇,期望待遇适当提高。 

4.不要去实习期6个月还打8折的公司,除非你没有其他选择了,否则不要去。

5.不要去参加很多大大小小的招聘会,纯粹是浪费时间。 
6.把面试当作一次技术的交流,不要太在意是否能被录取。就当学习。

7.公司一般面完就决定是否录取了,让你回去等消息这种情况一般没戏,感觉良好也没用。
8.地方远的尽量通过电话面试,不然白跑。 
9.面试冲刺阶段,要保持每天学习,无论是学习新东西还是复习旧东西。 
10.无论好的坏的公司,先拿到offer再说,最后看看自己这个公司自己是否值得去。
11.通过面试体验和面试官的风格 可以大概判断入职团队的情况。 
12.拉勾投的简历很多会被筛掉,但是拉勾还是面试机会的最主要来源。 
13.理想的公司可以多投几次,不同部门要求不一样。
14.问到自己有深入研究过的知识,抓住机会好好表现,吹是必须的,不要轻易错过吹得机会。 

15 大公司可以走猎头渠道。谈待遇靠谱一点。

长按订阅更多精彩▼

640?wx_fmt=jpeg

如有收获,点个在看,诚挚感谢640?wx_fmt=png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/66366.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯面试Android必问11题,我说的,不信就来看看

众所周知兔子啥都会那么一点,不收藏等着干啥呢 1、是否使用过本地广播,和全局广播有什么差别? 引入本地广播的机制是为了解决安全性的问题: 正在发送的广播不会脱离应用程序,比用担心app的数据泄露;其他的…

字节跳动面试官问了我源码,然后......

最近,我的一位朋友在找工作,已经拿到了拼多多、快手等公司的Offer,准备选择其中一家入职了。 后来他又接到了字节跳动的电话,通知他去参加三面。从二面到三面之间隔了挺久的,他都以为没戏了,结果却收到了通…

华为畅享20 pro 和华为畅享Z 的区别 哪个好

为畅享20 Pro的硬件配置和外观设计,似乎与华为畅享Z保持绝对的一致,华为畅享20 Pro的正面配备一块6.5英寸显示屏,由于是LCD的屏幕,因此指纹识别依然放在了侧面,最高支持90Hz的屏幕刷新率和180Hz的触控采样率 华为畅享2…

华为畅享20pro和华为nova7se的区别 哪个好

华为畅享20Pro是畅享系列的第二款5G手机,手机正面配备LCD珍珠全面屏,支持90Hz高刷新率,屏幕的分辨率为2400*1080,机身背部采用了玻璃,手机有星河银、深海蓝、幻夜黑三款配色。 华为畅享20pro更多使用感受和评价&#x…

华为畅享20 Plus和华为畅享20pro 的区别 哪个好

屏幕方面,华为畅享20plus配备6.63英寸的FHD IPS LCD屏,支持90Hz的刷新率以及180Hz的屏幕采样率,采用悬浮式升降摄像头设计,有星河银、樱雪晴空、翡冷翠、幻夜黑四款配色 华为畅享20plus更多使用感受和评价:https://www…

WeLink智慧校园解决方案,支撑校园多场景智能应用

随着人工智能、物联网、VR/AR、下一代安全、大数据、3D打印、5G等新兴技术的崛起,企业的数字化转型进程飞速发展。政府从2018年起倡导的《教育信息化2.0行动计划》整体教育行业IT建设方向,彻底打破教育数字化转型的僵局。一部分先知的学校已经展开了一系…

Java 设计模式之抽象工厂模式 (四)

定义:为创建一组相关或相互依赖的对象提供一个借口,而且无需指定他们的具体类;优点:使用抽象工厂来创建需要的对象,不需要知道具体的实现是谁,不用关心对象是如何创建出来的,只需知道工厂类是谁就能创建出一个对象;缺点:如果需要给整个产品族添加一个新的产品,那么就…

手机:华为手机中Mate、P、nova、畅享有什么含义,看完你就懂了

目录 Mate系列:顶级商务旗舰 P系列:时尚拍照旗舰 nova系列:时尚新星 麦芒:年轻人线下机 畅享:千元机主打 很多人在购买华为手机时,看到华为有Mate系列、P系列、nova系列、麦芒系列、畅享系列,这…

公有云、私有云和混合云的区别及优缺点,云南企业上云必须先了解清楚

随着云计算的逐渐兴起,云计算最基础的产品云主机非常受欢迎,其中云主机分为公有云、私有云和混合云,许多企业准备把数据往云上迁移,不知道选择那类云主机,接下来云南天成科技吴经理来谈谈什么是公有云、什么是私有云、…

官宣:“1847专家天团”正式出道

- 大咖来袭!- 1847专家天团 正式出道 — 与专家交流,让技术成长 — C位出道实力出征 9位西门子工业领域技术专家,带你聊技术,带你走捷径,为你点亮技术道路上前进的那盏灯。若你渴望技术提升,希望避开调…

Matrix AI Lab -84天寒假总结及新学期展望

今天是2021.3.14,是白色情人节,也是阴历二月二,先祝大家情人节快乐。被迫上岗,总结一下这次超长寒假自己被胖揍的过程以及成长。 文章目录 先捋捋我的原本假期规划再来看看实际干了些神马东西关于没有PPT总结新学期计划 先捋捋我的…

总计超5万星!GitHub上10个超级好玩的项目

GitHub上不光有大神分享的干货,更有非常多好玩,却还有一定技术含量的项目。 这次小七给大家精选10个项目,从几百星的小众项目到3万星的超火项目全都有! 10个项目总计有5万多星,小七也给各位列出了项目链接。 1、高颜…

华为畅享20pro和荣耀play4哪个好

屏幕方面,华为畅享20 Pro搭载了一块6.5英寸珍珠屏,采用比较不同的20层玻璃镀膜工艺加工,还支持90Hz刷新率和180Hz采样率,在工艺方面超出了当下中端5G的水平。 华为畅享20pro更多使用感受和评价:https://www.huawei.com…

Mathematica绘制图形

绘制平面图形的命令 Plot 显函数绘图 ParametricPlot 参数方程绘图 PolarPlot 极坐标方程绘图 ContourPlot 隐函数绘图 ListPlot 绘制点列图 例 Plot[x Sin[1/x],{x,-1,1}] 例 绘制三维图形 Plot3D 绘制二元函数对应的空间曲面 ParametricPlot3D 绘制空间曲线、曲面参数方程对…

科研绘图——upset展示更复杂的交集情况

将几个数据集之间的交集进行可视化,除了可以利用Venn图外,还可以使用upset这种图形。这种方法是发表在2014年nature methods上面。Sets and intersections | Nature Methods upset图形大致是这个样子 图形基本含义 那怎么观察这种图形,或…

Python使用matplotlib可视化模拟学生成绩饼图

import matplotlib.pyplot as plt import numpy as np plt.rcParams[font.sans-serif] simhei plt.rcParams[axes.unicode_minus]FalseSQL [5,17,3] math [3,20,2] english [6,16,3] pyhton [11,12,2] text ["优秀","及格","不及格"]plt.s…

Pika在360的应用与实践

01 业务挑战 随着业务量快速发展,用户对 Redis 这种速查KV缓存型数据库需求越来越高,不仅要快,还要持久化安全。Redis 自身aof 可保证持久化数据,但是随着内存增长,高内存下aof文件过大,bgrewriteof 重写往…

电脑GIF制作软件哪个好 怎么做QQ表情包

Gif表情包是日常聊天中必不可少的,不仅可以活跃聊天氛围,还可以增加感情,平时我们聊天一般使用的都是软件中自带的一些表情包,其实是完全可以自己制作的,那电脑GIF制作软件哪个好,怎么做QQ表情包呢&#xf…

有什么好用的gif制作软件 制作GIF表情包教程

说到gif,我们应该都不会陌生,平时网上聊天经常会用到各式各样的gif 动图,每个人喜欢的类型也都有所不同,曾经gif刚出来的时候,有一股斗图风盛行,那说了这么多,你知道如何制作gif动图&#xff0c…

怎样自制微信gif动态表情包?

在使用QQ、微信等聊天工具进行聊天的时候,很多人都喜欢在聊天的过程中不时的使用一张gif动态表情包,既能够表达出自身的想法,有可以活跃聊天的氛围,提升彼此之间沟通的快乐。那么大家知道自制微信表情包的方法有哪些吗?接下来手把…