在过去的这段时间里,大大小小的面试我参与过很多,基本上成功率还是蛮高的。到现在,也算总结出了一套应对面试的理论和方法。今天就来说说几个大厂的面试经验,觉得有帮助的小伙伴可以收藏一下。
头条*一面(过)
自我介绍
项目介绍
平时使用开的环境
redis获取一个hash的长度
用redis做过控频吗
能接受转语言吗
http状态码301,302
手写快排
头条*二面(挂)
网络部分:
DHCP如何实现分配ip的
发现阶段(DHCP客户端在网络中广播发送DHCP DISCOVER请求报文,发现DHCP服务器,请求IP地址租约)、提供阶段(DHCP服务器通过DHCP OFFER报文向DHCP客户端提供IP地址预分配)、选择阶段(DHCP客户端通过DHCP REQUEST报文确认选择第一个DHCP服务器为它提供IP地址自动分配服务)和确认阶段(被选择的DHCP服务器通过DHCP ACK报文把在DHCP OFFER报文中准备的IP地址租约给对应DHCP客户端)。
OSI七层模型,每层都说下自己的理解和知道的,说的越多越好
TCP和UDP的区别,TCP如何保证可靠传输的
说一下常使用的协议及其对应的端口
Linux部分:
I/O多路复用
进程间如何通信
动态链接和静态链接的区别
进程的内存分布
如何查找一个进程打开所有的文件
设计模式:
工厂设计模式
单例设计模式
讲一下,说一下应用的场景。
网易*一面(过)
自我介绍
Hashmap
两道简单算法
1、求连续子数组的最大和问题
2、走格子,从一个出发点到终点,只能向上和向右有多少种走法,连障碍点都没有
Java如何进行垃圾回收的
你用过哪些设计模式?
回答:单例,观察者,工厂,责任链,适配器
JDK中哪些实现了单例模式?
java.lang.reflect.Proxy类,java.lang.Runtime类,线程池。
两道设计题
第一道设计题:
比如我有个电商平台,做每日订单的异常检测,服务端代码应该写。、
第二道设计题:
比如窝网易邮箱春节要做一个活动,我网易邮箱用户量有3.4亿吧!但是我只允许8千万人参加,最后在8千万人里面产生一二三等奖,有一台物理机和一台数据库服务器。你怎么来设计。
网易*二面(过)
为什么会有内核态,保护模式你知道吗?
文件是怎么在磁盘上存储的?
有了进程为何还要线程呢,不同进程和线程他们之间有什么不同。
进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。
dhcp数据包格式及其原理
innodb聚集索引b+树叶子节点和磁盘什么顺序相同。
阿里*一面
1、自我介绍
2、全程怼项目,问的及其细,包括你为什么选择这种方案来实现,具体怎么存储怎么做的,相当细,遇到这类面试官,项目不够熟,就会翻车了。
3、redis原子操作怎么用比较好
4、消息队列会吗?
阿里*二面
操作系统模块:
1、说一下并行和并发的区别
2、你知道进程吗?有进程为何还有线程?
3、操作系统是如何调度进程呢的
4、比如linux下我打开一个文件调用read函数,整个过程说的越
5、同步异步阻塞非阻塞IO详细越好。
其他记不起来了。其实这些扩展开来就能说很多,就包含文件系统,进程管理和调度,就差内存管理机制了,我自己说了,虚地址保护模式。
网络模块:
TCP报文格式
TCP和UDP
拥塞控制
超时重传
三次握手
滑动窗口
常见协议的端口号
数据库模块:
索引数据结构
索引优化
存储引擎
事务(spring框架如何实现事务的呢)
分库分表
Java模块:
hashmap
Arraylist和linkedlist
voliate
线程池,如何根据CPU的核数来设计线程大小,如果是计算机密集型的呢,如果是IO密集型的呢?
countdownlatch和CyclicBarrier底层实现原理
线程状态以及API怎么操作会发生这种转换
JVM:
他说只问三个问题,
1、垃圾什么时候被回收
2、是怎么回收的呢
3、忘了。。。。
分布式:
1、redis
2、分布式事务解决,你知道我们阿里巴巴是怎么做的吗?
3、消息队列
4、分库分表
5、CAP
暂时只能记起这么多
你打住我知道你的掌握程度了期间这句话说了很遍。我知道了,你不用说的这么详细。我们不在这个上面纠缠了,下一个。
阿里*三面
自我介绍
hashmap
红黑树
微信附件人这个功能怎么实现的
String中hashcode怎么实现的
项目问的很多
就聊了20分钟
小米*一面(过,offer没拿到岗时间)
自我介绍
项目介绍
类加载机制
垃圾回收算法
G1垃圾回收器
hashmap,hashtable,concurrenthashmap(JDK1.8)
BIO和NIO
三次握手
流式计算
悲观锁,乐观锁
spring bean生命周期
进程和线程
linux下排查某个死循环的线程
Arraylist和linkedlist
解决hash冲突的方法
跳跃表
小米*二面
自我介绍
项目
如果你的项目出现了内存泄露,怎么监控这个问题呢
一致性哈希算法
两个单链表相交,找到交点共享文档手写代码
nio和bio,bio底层怎么实现的呢
select poll epoll区别
redis为何效率高
熟悉开源消息队列吗?讲一下
ngix+redis集群+session共享或者同步
问下你有面试其他公司吗?都有哪些offer呢
上午被他们看完博客,说一面太简单了。
明明面了一个多小时,记不起来问题了(记起来了再补)
反正怼我的目的没有达到~~。
搜狐*一面(offer)
项目问得很细。
自旋锁
标记清除和标记整理的区别和优缺点,为何标记整理会发生stoptheworld
mysql索引,最左匹配原则,!=为何会索引失效
写sql举例最左匹配原则
解释下乐观锁和悲观锁
信纸上写反转单链表
你是找实习的,怎么不早说呢,你过了。
其他记不起了。
ps:感觉Java基础知识很少被问到了,上来都是细问项目,问的相当细,项目如果有漏洞就会对你很怀疑,想着怎么更好的考察你。尤其参加补招,因为后来面试官给我解释,怕是我是专门应对面试的,准备了很多。
商汤*一面
让你设计一个cache如何设计
redis过期策略是怎么实现的呢
mysql存储引擎,更适合做哪种应用,
哪些情况下索引会失效
建立索引需要注意哪些情况
垃圾回收
CAS
新生代对象如何迁移到老年代对象
G1
ReentrantLock实现原理
spring aop
hashmap
concurrenthashmap
面试官说我要招一个尽快入职,主要你时间不匹配,说这句话我就知道gg了,不过我会把你简历留着,再招的话可以通知你。
滴滴*一面(offer)
很奇怪,这面试官不说话。让你自己讲,中间偶尔问下问题
,这是故作高深吗?把毕生功力都展示出来了。
比如我虚地址保护模式是80286开始支持的,描述子里面放读
写权限,地址空间,段基址,加上偏移量完成从虚地址到物
理地址的转换。
CAP理论
mysql能讲的都讲了
netty源码
Java差不多也是的,多线程,thread,runnable,从
cyclebarrier,countdownLatch,线程池到自定义线程池(缓存,拒绝策略,核心数)。
福利:
想要了解更多面试技巧及知识点的,可以关注我一下,我后续也会整理更多关于面试的内容出来,另外顺便给大家推荐一个交流学习群:650385180,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多,以下的内容在群的共享区可以免费下载。
总结:
个人感觉回答面试官问题不必太官方和书面化,腾讯sng招实习被发现照着百度百科念。结果可想而知。用自己的话和理解去回答就好。可能应届生会抱怨设计题,个人感觉尽量去做,把自己平时积累的知识点,思想和能力尽量去展示就好,可能面试官对你的回答期望不是太高。每面完,我就问面试官对我们在校学习有什么建议,无外乎,努力,多写代码多动手,保持持续学习的心态,关注一些新技术。加油你们都是最棒的!别太紧张了,这些技术面面试官人都很好的。目前面了几家聊得都很愉快。