不要给自己挖坑!!!不要给自己挖坑!!!不要给自己挖坑!!!如果面试官只是问你了解xxx吗,如果不是很了解,就直接说不知道,不要说知道,不然面试官深问再不知道就印象很不好!

处女面送给了头条(北京)日常实习(一面挂,视频面,持续时间一个小时,2018.3.28):

1.项目问题---针对在线考试系统
  1)数据表结构,表之间的关系,包括有几个表,每个表里面包含的字段,表之间是怎么关联的。
  2)扩展需求(我的设计里面学生每场考试只能考一次):学生反复考同一份考试,怎么查看每场考试的具体情况?
    解决办法:可以新建一个考试情况表,存储相关信息。然后根据考试情况表的id,来区分每场考试情况。即前台点击的时候,可以hidden当前的考试情况id,然后后台就可以区分了。
  3)计算和传文件时间较长,怎么处理?
2.项目问题---针对商城
  1)怎么发展成集群?集群是什么意思?
  2)订单号怎么生成?
  3)怎么实现定时关单?
  4)为什么要做购物车商城
  5)get和post分别在什么情况下使用?
3.基础
  1)mysql索引,两个关键字的索引,如果只查其中一个,是否用到索引?
  2)hashmap的时间复杂度是多少,解决冲突的办法有哪些?
    解答:时间复杂度是o(1),但要具体分析一下,因为里面还有链表的复杂度存在。
4.手撕算法
  1)传入是hashmap,嵌套多个key,怎么去除嵌套的key,还原数据。即类似{url:{url:{url:127.0.0.1}}}的数据,将最里面的数据还原。
  2)有序数组,怎么确定某一个数有多少个。(感觉想考二分查找,时间复杂度要小于o(n))
字节跳动(武汉)暑期实习(两面技术一面HR,现场面,给了口头offer拒了。持续时间技术面平均一个小时,hr十分钟,2018.6.15)
openday做了笔试题,10个单选题,两个算法题,一个设计题。
单选题内容:
1)多线程访问情况下,变量是否加锁问题。代码如下:这里需要加锁的是a和b。因为k是每个线程独有的,而a和b是共享的。
1 int a = 10;
2 public int fun() {
3     static int b = 10;
4     int k = 1;
5 }
View Code

2)操作系统LRU的计算题。

3)TCP和UDP的区别。

4)网络子网的计算,即有多少个子网,每个子网多少个主机。

5)16进制表示的两个有符号数相加,0x7FFF FFFF FFFF FFFE + 0x1000 0000 0000 0000,结果是-2。

6)堆排序的时间复杂度是o(nlgn),建堆的时间复杂度是o(n),调整堆的时间复杂度是o(lgn)。

7)排列组合问题,20分钟内一辆车经过的概率是75%,则10分钟内一辆车经过的概率是多少。

  设10分钟内一辆车经过的概率是p,则有(1-p)(1-p)+0.75=1,解得p=0.5。

8)汇编高低位怎么放置的问题。

算法题:

1.寻找数组中的峰值(比左右两个值大)。直观解法是o(n),遍历一遍找到就返回;优化解法是o(lgn),二分查找,一旦找到就返回,否则左右谁大往哪边找。

2.leetcode42题

设计题:

设计微博时间线系统,关注的人发微博后怎么实时更新到粉丝首页,尽量少的延时,下滑时翻页是怎么做到的。要求,模块设计,模块之间的协调通信。

解决:仿照微信(写扩散)。写扩散的应用:粉丝和发微博不是很多的情况。每次关注的人发微博的时候要向粉丝写入数据。所以当数据量太大的时候有可能承载不了,但是微信朋友圈是可以的。读扩散的应用?

考察:设计题没有标准答案,要注意针对不同的实际业务量有不同的分析和解决方案。

一面(五十分钟)

1.针对笔试题,一一追问解决办法。

2.TCP和UDP的区别:TCP可靠、具有拥塞控制,但是有延时、消耗资源;UDP不可靠,适用于视频通话等。

3.画出项目的整体框架图,是架构式的,系统瓶颈在哪里(图片服务没法更新、tomcat没做异步)。

二面(一个小时,TCP和UDP的问题问的很深入,起码问了有半个小时)

1.域名解析过程,IP由DNS服务器解析出来,DNS用UDP协议,HTTP的PORT默认是80,用到了TCP建立三次握手连接,数据链路层查找MAC地址用的ARP协议(但这个协议实际是网络层的)。

1.TCP和UDP深入追问,TCP是针对字节流的,UDP是针对报文的,他们的本质区别是什么?即字节流和报文在发送和接收数据方面有什么不一样的地方?TCP由于有窗口大小的限制,所以发送端发送过来的数据如果过大,不能一次性全部接收,而应该循环接收,直至全部接收;而UDP则没有这种限制,发送端发多少,接收端就可以收多少。

2.Socket编程中,发送端send两次10B的数据,接收端receive一次数据,可以接收的数据范围是多少?1B~20B。

3.MySQL索引有哪些?左前缀索引是什么样的概念?在什么样的情况下索引会失效?

4.MySQL的引擎有哪些?有什么区别?

5.redis的数据类型有哪些?各适用于什么场景?

6.Java里面的map都有哪些子集合?各有什么区别?HashMap(允许null值,非线程安全,时间复杂度是o(1)),HashTable(不允许null值,线程安全),TreeMap(有序,时间复杂度是o(lgn))。。。

8.HashMap的key是自定义的类时,为了保证key的唯一性,应该重写该类的hashCode和equals。

7.加密存储是用什么加密的?MD5是不可逆加密,可不可以用密钥加密?为什么不采用密钥加密,这种可逆加密与不可逆加密有什么区别,各有什么好处?

8.自己挖坑了。。。加密算法了解一些吗?对称加密和非对称加密。。。

9.单点登录系统的实现思路。单点登录主要解决什么样的问题?cookie不能跨域问题。你的系统中解决了什么样的跨域问题?www.mall.com和www.baidu.com这种跨域问题怎么解决?

10.写sql语句,uid,date,count分别表示学号,进图书馆的日期,进图书馆的次数,查出每个学生四月份进图书馆的总次数。select uid,sum(count) from t where 4月份 group by uid。

11.Java中的堆区和栈区有什么区别?

字节跳动(武汉)秋招(一面技术,电话面,一战和二战面头条都特别想进去,第三次的时候已经不太想进去了)

一面(2018.9.12)

1.手写栈,要求是:可适用于所有场景。

2.http有什么优点和缺点。

3.301和302状态码有什么区别。

4.积分兑换商品实际的sql操作是什么样的?说出关键的点。

数据不一致如何预防和处理。

5.取栈中的最大值,要求时间复杂度是o(1)。

6.怎么理解面向对象?多态是怎么实现的?private方法子类可不可以访问到?

18年三战头条的一些感受:

不知不觉自己竟然已经经历了四次头条的技术面,每次感觉其实都很好,每个面试官无论从态度还是技术上都是质量很高的。态度上的话,即使你问题回答不上来,他也不会对你表现出来瞧不起的态度,也不会因此不想再继续面你,而是换一个方向的问题继续问,也就是在某一个点上你不会之后,他会找其他的点来发现你的潜力,也就是说其实面试官在不断的找你可能擅长的点,对你产生一些兴趣,而且不管水平怎么样,时间一般都会控制在一个小时左右。技术上的话,每个面试官不管技术深度还是技术广度感觉都挺过关的,每一个他发问的点,都能问的比较细,有的人说是问的偏,其实我倒觉得不至于,只是他们所站的角度不一样,所以也许同样的问题,他们想知道的我们的掌握的点不一样。所以虽然最后不管怎么样自己可能都去不了也不会选择头条,但是头条的整体面试体验还是非常好的,而且也能看出来头条的整体的技术水平。其实当你跟一个公司的多个面试官聊过之后,你真的能感受出来这个公司的整体的技术功底的,因为有的面试官问出来的问题真的很浅甚至有的标准答案连他自己都不知道,其实你是能感觉出来的。所以崇尚高工资,不介意加班的话,其实头条目前来说还是很值得去的,毕竟也还处于快速发展期。

相关文章:

  • 2021-10-29
  • 2021-12-06
  • 2021-09-20
  • 2021-05-03
  • 2021-12-07
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-07
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2021-10-19
相关资源
相似解决方案