总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
分布科技
这个投递的是区块链开发岗,面试官是我现在公司跳槽出去的,所以一见如故 hhh?问的不是太难
现场面
自我介绍,介绍做过的一些项目
手写树的中序遍历的递归和非递归方法
一道简单的 sql,涉及 join
java 的链式调用是怎么实现的
讲一讲建造者模式
说一说 ios 的 autolayout
给 C 艹中 strcpy 函数设计测试用例(这题主要应该考虑指针重叠的问题)
一天后给了结果说面试通过然后补做了笔试,编程实现囚徒困境的问题
又过了几天人力总监电话面试,沟通了下具体情况,是否看好区块链,想做什么方向,能否先来实习之类的。。
总结:唯二的第二家在面试时 HR 会给你准备一瓶水的公司,区块链大家都懂的。。。就不多说了,目前已通过等待谈 offer 中
星环科技
电面
主要是介绍自己做过的项目针对项目提了些问题
使用线程池的优点是什么
为什么想跳槽
一面
自我介绍
手写一个算法对一个数组的数组排序其中里面一层的数组里的元素是排好序的
一开始写了个归并,后面面试官说时间复杂度太高,不如直接 n 个指针指向每一个里层数组直接排序
面试官介绍公司状况,个人提了些问题
二面
两个链表判断是否相交,怎么找第一个相交点
一道 sql,一个表有学生,科目(每个学生的科目说不一定相等),分数三个字段,找所有科目大于 90 分的学生
开放题,服务器 1 上有 40T 的数据,服务器 2 上有一个任务需要这些数据,在网络带宽限制的情况下,怎么把数据快速传到服务器 2 上
三面
自我介绍
说说对线程的理解
一道算法题,一个数组找连续子数组和为 0 的数组,并返回其中最大的长度
这道题一开始用了贪心,但说最坏情况下复杂度太高,后来经过面试官提醒实现了一个 O(n)时间复杂度
HR 面
今天面的怎么样,现在对公司有了解吗
接着又详细介绍了公司的状况
有什么想问我的
总结:这周告知面试通过接下来会谈薪水,基础架构部门。星环主要是 To B 的业务,所以名声应该不太响吧,不过据说技术氛围不错,只是据说。。。
阿里
阿里参加的是远程视频面只有两轮面试+HR
一轮
自我介绍
针对目前公司做的项目问了线程池方面的问题,怎么实现的
项目中怎么处理容错,答:用了数据库的事务机制
说一说线程有哪些状态,线程池中异常抛出的路径知道吗
针对学校做的项目,有没有考虑分布式存储;答:数据量不大,直接用数据库塞的下
那如果数据量很大,并且我要保证实时数据和历史数据有交集有历史沉淀,你会怎么设计?
了解分布式的计算框架吗? 答:了解基本原理但没有深入使用研究过,但如果需要使用我可以自学
那你平时都是怎么自学的?
有没有参与过一些开源项目?
如果用精通,熟练。。。来描述一下你的 java 水平你会用哪个词?
看过 java 的源码吗?答:看过一点集合类
那你说一说 hashmap 的实现(这里非常详细的展开说了实现原理)
那 hashmap 安全吗?(不安全,我们可以用 blabla…)
那说说 concurrenthashmap 的原理
如果一个 hashmap 有一亿条数据怎么实现高效查找; 答:可以考虑优化 hash 函数减少碰撞(事后大佬指点分布不均匀的话更好的应该是进行分层)
如果一个系统要进行调优你会考虑哪些方面;答:jvm(非常详细的展开),如果有数据库查询可以用索引等等。。。
对自己的职场未来有什么规划?
二轮
自我介绍,做过的项目介绍,项目中的线程池怎么实现的
说说线程的状态
java 里实现线程有哪些方式
说一说 NIO
接下来就是全程闲聊了,没有再问别的技术问题
还是有没有参加过开源项目
你平时怎么自学
最近在关注什么;答:最近在看区块链,又在看比特币源码
那你说说比特币有什么优点呢? blabla…
说了那么多优点那他有缺点吗? blabla…
在海外读的大学那你平时怎么利用英语的优势呢
闲暇有什么个人爱好
有什么想要问我的? (皮了一下,问了面试官您在阿里工作最大的收获是什么?)
请耐心等待下一轮面试。。。
HR 面
自我介绍
为什么要跳槽
现在面了哪些公司
能不能来杭州
了解过互联网公司的文化吗
和传统 IT 比起来你觉得区别有哪些
总结:阿里通关没什么遗憾了,静待十一过后开奖结果了,求好运,求上海岗。。。
网易互娱
投的游戏开发岗,线上笔试之后进入面试,先是 30 分钟笔试题,是关于图的连通数问题,然后进入面试
一面
说一说 jvm 的分区
说一说线程池
说一说 java 文件编译成.class 文件的过程
说一说 jvm 加载的过程
了解过网络编程吗
设计一个数据结构实现 LRU
手写算法,找图中两点之间最短路径
结束之后面试官苦口婆心的说基础不错,但是你写 java 和这里写 C 艹相差很大,如果来这里就要推倒重来,其实你学 java 完全可以去阿里,美团。。。但是如果做游戏的话就要一条路走到黑了,技术栈和互联网公司也会有很大不同,所以是需要一定热情的,你真的考虑好要做这一行了吗,如果你下定决心了我就给你安排二面。。。然后就没有然后了,我以考虑考虑为由就被劝退了。
总结:互娱还是挺辛苦的,面试官说两个月一轮 996,持续一个月时间。。。
小红书
一面
自我介绍,
公司里做的项目怎么容错
知道哪些常用的数据结构
synchronized 和 lock 的区别
spring 的控制反转
知道哪些设计模式,说一说建造者模式
说一说 TCP 的四次挥手
手写算法,求最大连续子数组的和
二面
手写算法,算矩阵差值实现 O(1)复杂度
手写算法,对一个数组的数组(里层数组长度不固定,可能为空)实现迭代器的 hasNext()和 next()方法
给了个应用场景,怎么设计数据库表
接下来问了一些项目当中碰到的问题
三面
部门负责人面
前面半程以聊天为主
本科为什么选择读软件工程
***作系统了解吗
你最拿手的一门课是什么,说说你对他的理解
接下来好像是聊项目优化方面的事说到了索引,说说 B+树(有什么特点,索引为什么是选择 B+树实现的)
最后,你来手写实现一个 hashmap 吧。。。。
HR 面
面试感觉怎么样?如何评价前面的三个面试官?
为什么想跳槽
比较一下传统 IT 和互联网企业?
有什么想问我的吗? 答:什么时候开奖。嗯就这样吧,大家都辛苦了早点回家。。。(楼主是下午五点最后一批一直面到晚上九点)
总结:目前已拿意向书,小红书还是不错的等待面试时提供零食茶水,还有免费盒饭,地理位置也十分优越。。。
爱奇艺
一面
自我介绍,
线程中保持同步有哪些方法(synchronized 和 Lock)
白板手写单例(懒加载。。双重检查。。静态内部类)
堆和栈的区别
说说快排的原理
接下来就是和我聊一下职场感悟之类的话题了
二面
写在最后
还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…
ck)
白板手写单例(懒加载。。双重检查。。静态内部类)
堆和栈的区别
说说快排的原理
接下来就是和我聊一下职场感悟之类的话题了
二面
写在最后
还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…
[外链图片转存中…(img-8Fi58PG4-1715058556665)]