头条后台开发面经

(说好的等收到感谢信再发的。。刚才回忆了一下,发现记不太全了。。先发了吧)

自我介绍

你会什么,擅长什么

按熟悉程度排序,计算机基础课你哪些学得不错

(一顿闲聊)

操作系统

  1. 什么是操作系统

  2. 你觉得作为一个软件开发人员,需要知道哪些关于操作系统的知识

  3. 如何实现系统调用

  4. 内核态与用户态的区别

  5. 物理地址和虚拟地址是如何转化的,其中涉及了哪些硬件?

计算机网络

  1. 在一个子网内,你不知道外网的IP,如何访问到外网?(大概是这样,具体记不太得了。。这题我乱说的)

  2. 假如你要传一个很大的文件,怎么传?

  3. TCP如何实现可靠传输,具体解释一下每一点

  4. UDP和TCP什么区别

  5. UDP不面向连接是什么意思?不连接怎么传递?UDP传输不可靠怎么办?

数据结构与算法

  1. 丢了一个链接,让写快速排序(我问,要讲吗?面试官:不要讲,你直接写)

(大约5分钟写完)

  1. 快速排序稳定吗?为什么

  2. 哪个常见排序是稳定的,为什么

  3. 算法复杂度了解吗

  4. 大O复杂度具体指的是什么?

  5. 有哪些常见的时间复杂度,各举一个例子

  6. 多举几个O(1)时间复杂度的例子

  7. 动态规划了解吗,主要是用来解决什么问题?适用于什么场景

  8. 来写个背包吧

问了最简单的0/1背包,一些东西的weights,一个capacity,问最多可以装几个物品

(3分钟写完了?)

讲一下你这么写为什么是对的

最后的碎碎念

在另外一个帖子里吐槽过,大概我的计算机网络那里答得不太好。。主要是前两个问题答得不好。
数据结构和算法基本肯定是对的。。
但是应该还是凉了
全程面试官没有什么反应,对了还是错了,我都不知道。。。我全程都在随心所欲乱说,面试官基本没有interaction,楼主完全不知道自己说对了还是说错了。。
因此对于自己凉了的事实还是有点不太能接受。。哭哭
各位小伙伴们加油!!好运!!!

#字节跳动##Java工程师##面经##秋招#
全部评论
哈哈哈哈背包也3min搞掂 楼主厉害 我感觉你可以的!
点赞 回复 分享
发布于 2019-07-17 23:05
你的丢了一个链接我看成了一个链表实现快排,我懵了好久。。。
点赞 回复 分享
发布于 2019-08-26 22:59
这怎么问的都是这么基础的
点赞 回复 分享
发布于 2019-07-24 03:15
这个是贪婪算法吧,不算背包问题吧,我一直取最小重量就行了吧
点赞 回复 分享
发布于 2019-07-19 18:51
这是一面还是二面啊
点赞 回复 分享
发布于 2019-07-18 22:20
算法是用什么语言实现的呢
点赞 回复 分享
发布于 2019-07-18 10:58
小白想请问一下,怎么准备这些东西呢?感觉这些都学过可是跟在学校学的重点又不太一样,而且很多都忘了,是分这三科分别看课程,还是找真题直接上手做呢?谢谢!!
点赞 回复 分享
发布于 2019-07-18 10:43
我也想问下,,楼主知道计网前两个问题的答案吗?
点赞 回复 分享
发布于 2019-07-17 23:39
这是全程问计算机基础么😂
点赞 回复 分享
发布于 2019-07-17 22:49

相关推荐

面试官人很好,态度和蔼可亲,没答出来时也会引导你去思考。由于是晚上面的,导致我白天一天都有点紧张,面的时候状态也不是很好,正常可能面试官提问完应该思考几秒再答,而我就像抢答一样一口气把所有会的都说出来,这样就导致逻辑比较混乱,东一句西一句的。首先是自我介绍,先把会的技术大致讲一下,由于我八股背的多所以着重讲了一下,Java,go,jvm,MySQL,Redis,计网,操作系统这些,然后一小部分闲聊,然后先问了一下项目,面试官问我这个项目是否落实之类的,直接坦言说是写的练手的,包括之前也写过IM通讯,外卖之类的。然后面试官就把提问的重点放在了八股上。先问了Java:类加载器(答:3种+自定义类加载器、tomcat、原因+双亲委派+好处)JVM参数(答:xmx,xms,newsize这些,问我是如何设定的,我回答是把内存分一半给堆,再把堆分一半给新生代,这方面确实不太了解)然后问了一下并发相关的:线程池(答:线程池的7个参数(忘了线程工厂和阻塞时间了),3个重要参数,还有线程如何启用,为什么要设计最大线程数之类的,提到Java栈默认分配1MB运行时不可以更改)AQS(答:先讲clh是自旋锁+list,然后是AQS在这个基础上做的两个优化,然后举了一下reentrantlock根据state如何获取资源)CAS(答:使用三个字段,aba问题,然后将通常搭配自旋锁实现,面试官问通常会自旋多少次,这个不太了解,答的100,然后问100次大概多少秒,回答微秒级,然后面试官讲了一下怎么做资源可能没用完,意识到可能还需要进行阻塞操作)然后考虑一下Linux命令(top,ps,如何使用管道符过滤线程和使用Linux启动线程没答出来)然后问Redis:持久化机制(答:三种aof,rdb,混合,aof的三个参数刷盘策略,rdb以快照保存,使用bgsave会使用子线程来保存不会阻塞,而aof虽然会阻塞但是只在写完数据后追加一条命令,不会太影响,然后是他俩的优缺点,还有混合是怎么保存数据的)集群模式(答:三种,主从复制到缺点再到哨兵机制,正常使用三个哨兵互相监督,主节点挂了投票选主哨兵然后选主节点,然后额外讲一下脑裂的问题,主节点进行数据更新然后把命令写入aof来同步从节点,最后cluster集群,如何实现,使用16383个哈希槽(艹答成16384了),先根据哈希码取余,再根据节点数取余决定放在哪个节点上,然后问了一下我会怎么选集群模式,首先是cluster的问题,会让管道操作之类的失效,然后哨兵会导致整个集群结构变得复杂,使用小项目可能会考虑哨兵,大的考虑cluster,然后考了一下cluster如果一个节点挂了怎么办,根据节点数重新取余然后数据转移,面试官说这么转移比较慢,有没有别的办法,我隐约记得使用一个类似环形数组的方式,想不起来了)然后考了一下MySQL的b+树(这方面的知识点太多了,导致我什么都想讲逻辑就比较乱,讲了一下聚簇索引,树的叶子节点对应着一张页16KB,MySQL有一个区的概念,把这些页放在同一个区中,这样叶子节点的双向链表遍历时速度更快,然后b+树的扇出比较大(非常二,说成扇度之类的,面试官以为说的是扇区)这样层数就比较小,一行1kb数据的话3层可以放心2000w数据)其他的暂时想不起来了算法是lru,面试官问要不要提示,我说写个,然后写了10分钟左右,说大概写好了,但是面试官指出了2个小错误,第一个马上就改回来了,第二个一直没看出来(大脑这时候已经停止工作了)反问:问学习建议,说根据实际的项目进行深入,考虑应该怎么做,还问了一下组里面是做Java的吗?面试官说他是做go的,组里什么语言都有,语言影响不大,连忙补充了一句我对go的底层有深入源码的学习)结束。总体感觉答得不太好,没有太体现出深度,细节也不够全面。
下一个更好呗:佬,我投完云智一直没消息,多久约的一面啊
查看14道真题和解析
点赞 评论 收藏
分享
刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
评论
点赞
154
分享

创作者周榜

更多
牛客网
牛客企业服务