面试程序员知了·IT

阿里、搜狐等七大厂的面经(跳槽必看)

2018-04-22  本文已影响203人  程序员技术圈

在过去的这段时间里,大大小小的面试我参与过很多,基本上成功率还是蛮高的。到现在,也算总结出了一套应对面试的理论和方法。今天就来说说几个大厂的面试经验,觉得有帮助的小伙伴可以收藏一下。

头条*一面(过)

自我介绍

项目介绍

平时使用开的环境

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招实习被发现照着百度百科念。结果可想而知。用自己的话和理解去回答就好。可能应届生会抱怨设计题,个人感觉尽量去做,把自己平时积累的知识点,思想和能力尽量去展示就好,可能面试官对你的回答期望不是太高。每面完,我就问面试官对我们在校学习有什么建议,无外乎,努力,多写代码多动手,保持持续学习的心态,关注一些新技术。加油你们都是最棒的!别太紧张了,这些技术面面试官人都很好的。目前面了几家聊得都很愉快。

上一篇下一篇

猜你喜欢

热点阅读