最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴,京东,美团,滴滴),面试回来之后会发给我一些面试题.有些朋友轻松过关,拿到 offer,但是有一些是来询问我答案的.
其实本来真的没打算写这篇文章,主要是自己得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的.
但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了. 说实话,我只能隐约想起并发,JVM,分布式,TCP/IP 协议这些个关键字,具体的问题真的是几乎都没记住.而且就算我记住了,也告诉你了,你也背会了,但我觉得,在面试中,你被问到一模一样问题的可能性依然很小. 甚至,就算你运气好被问到了,你也照着背下来了,也不一定就能对你的面试起到正面的作用,因为面试官万一多问一句,你可能就露馅了,那还不如干脆点说不会更好. 在此给大家讲一下大型互联网企业面试题
先来看下自己记录的面试材料:
一,阿里巴巴面试
第一个:阿里面试都问什么? :(55 分钟)
1,开发中 Java 用了比较多的数据结构有哪些?
2,谈谈你对 HashMap 的理解,底层原理的基本实现,HashMap 怎么解决碰撞问题的?
这些数据结构中是线程安全的吗?假如你回答 HashMap 是线程安全的,接着问你有没有线程安全的 map,接下来问了 conurren 包.
3,对 JVM 熟不熟悉?简单说说类加载过程,里面执行的哪些操作? 问了 GC 和内存管理,平时在 tomect 里面有没有进行过相关的配置
4,然后问了 http 协议,get 和 post 的基本区别,接着 tcp/ip 协议,三次握手,窗口滑动机制.
5,开发中用了那些数据库?回答 mysql,储存引擎有哪些?然后问了我悲观锁和乐观锁问题使用场景,分布式集群实现的原理.
6,然后问了我 springmvc 和 mybatis 的工作原理,有没有看过底层源码?
二,京东金融面试
1,Dubbo 超时重试;Dubbo 超时时间设置
2,如何保障请求执行顺序
3,分布式事物与分布式锁(扣款不要出现负数)
4,分布式 session 设置
5,执行某操作,前 50 次成功,第 51 次失败 a 全部回滚 b 前 50 次提交第 51 次抛异常,ab 场景分别如何设置 Spring(传播性)
6,Zookeeper 有哪些用
7,JVM 内存模型
8,数据库垂直和水平拆分
9,MyBatis 如何分页;如何设置缓存;MySQL 分页
10,熟悉 IO 么?与 NIO 的区别,阻塞与非阻塞的区别
11,分布式 session 一致性
12,分布式接口的幂等性设计「不能重复扣款」
三,美团面试
1,最近做的比较熟悉的项目是哪个?画一下项目技术架构图
2,JVM 老年代和新生代的比例?
3,YGC 和 FGC 发生的具体场景
4,jstack,jmap,jutil 分别的意义?如何线上排查 JVM 的相关问题?
5,线程池的构造类的方法的 5 个参数的具体意义?
6,单机上一个线程池正在处理服务如果忽然断电该怎么办?(正在处理和阻塞队列里的请求怎么处理)?
7,使用无界阻塞队列会出现什么问题?
8,接口如何处理重复请求?
9,具体处理方案是什么?
10,如何保证共享变量修改时的原子性?
11,设计一个对外服务的接口实现类,在 1,2,3 这三个主机(对应不同 IP)上实现负载均衡和顺序轮询机制(考虑并发)
四,滴滴面试
1,自我介绍,技术特点
2,兴趣是什么,优势是什么
3,jvm,jre 以及 jdk 三者之间的关系?
4,Dubbo 的底层原理,Zookeeper 是什么
5,cincurrentMap 的机制;TreeMap;Volatil 关键字
6,快速排序;广度优先搜索(队列实现)
7,缓存的雪崩以及穿透的理解?
8,HashMap 的 key 可以重复吗?
9,synchronized 和 lock 的区别?
10. 开发一个大型网站你会考虑哪些问题
微服务这块给大家分享一个学习图谱
总结
我特意整理了一下,有很多问题不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,用来回答这些面试题.很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然.如果想学习 Java 工程化,高性能及分布式,微服务,深入浅出.性能调优,Spring,MyBatis,Netty 源码分析的朋友可以常来我的 Java 进阶网 http://www.bieryun.com/ 有阿里大牛直播讲解技术,以及 Java 大型互联网技术的视频免费分享给大家.
来源: http://click.aliyun.com/m/40097/