【社招】三面阿里被怼,四面淘宝拿offer面经分享
阿里一面:
- HashMap实现原理,ConcurrentHashMap实现原理
- 红黑树,为什么允许局部不平衡
- TCP,UDP区别,为什么可靠和不可靠
- 一次HTTP请求的全过程,包括域名解析、定位主机等
- TCP三次握手
- MySQL事务是什么?四大特性,四大隔离级别
- ConcurrentHashMap和Hashtable区别
- springIOC和AOP,以及各有什么优点
- 有哪几种常用的线程池
- 什么情况下使用Runnable和Thread创建线程,Runnable和Callable的区别
- 线程方法中的异常如何处理,副线程可以捕获到吗
- synchronized和锁的区别,什么情况下使用synchronized和ReentrantLock
- JVM的对象分配在哪个区,Class对象分配在哪个区
阿里二面:
阿里三面:
- 介绍你实践的性能优化案例,以及你的优化思路
- 微服务和SOA的区别,优劣势
- SQL慢查询的优化方案,索引和表的优化方案。
- MySQL与MongoDB的区别,海量数据的存储
- 缓存框架,例如Redis、Memcached之间的区别,优劣势比较
- 请描述一致hash算法
- 分布式session的共享方案有哪些,有什么优劣势
- 高并发情况,系统的优化方案有哪些,以及优先级排序。
淘宝一面:
面试介绍
1)自我介绍?
2)项目介绍?
3)遇到的最大困难是什么?怎么解决的?
4)你觉得你能怎么优化这个项目?
面试题目
1)讲一下JVM
2)讲一下JVM的分代回收以及具体算法
3)将一下JVM的垃圾收集器,G1和CMS有啥区别?
4)讲一下一个变量从产生到结束所经历的过程,讲一下字符串常量的过程?
5)将一下线程安全问题产生的原因?
6)讲一下乐观锁和悲观锁
7)乐观锁是怎么保证一致性的
8)Integer和int有啥区别,integer中有哪些特殊的函数?
9)讲一下数据库的隔离等级
10)说一下MVCC
11)说一聚簇索引和非聚簇索引的有什么不同
淘宝二面:
1、问了冒泡排序,快排,和归并排序及优缺点和优化
2,网络方面有osi七层,tcp/ip五层,分别有哪些协议及作用
3,爬虫用的什么数据结构
4、tcp的流量控制和拥塞控制
5,mysql用的什么存储引擎,这个存储引擎用的什么数据结构,有哪些优缺点,怎么使用
6,jvm的垃圾回收机制和垃圾收集器
7、spring当中事物的隔离级别
8、jdk1.8concurrenthashmap的新的特性,有没有看过源码
9、threadlocal了解吗
10,问了redis的一些问题,项目中有(扩容,失效key清理策略等)
11,剩下的都是项目的东西(kafkafilebeatelk原理,主从选举,复制等)
12,后面扩展的问了一些大数据相关的,问我一些大数据处理框架是否有了解
整个过程四十分钟左右
淘宝三面
主要项目,你做过哪些项目,用过哪些技术?了解哪些框架?你觉得对你技术提升最高的是哪一件事情,提升了你哪一方面的技术?
1)讲一下SpringAOP和IOC的底层实现
2)说一下hashcode的作用?HashMap的底层实现?HashMap和HashTable的区别
3)说一下concurrentHashMap和hashTable在性能上的区别?以及这种差异形成的原因
4)讲一下堆以及堆排序
5)说一下B+tree和二叉搜索树的区别?说一下二叉搜索树和AVL树、红黑树之间的差别
6)给你两个文件(字符串形式的)如何找出他们之间的不同地方?
7)你刚刚说的能怎么优化?
淘宝四面交叉面
本来以为三面结束就是hr面了,又收到一面交叉面
1.给你50亿行字符串,机器4G内存(只能一台机器),找出重复次数最多的那行字符串?(以行为单位,每行不超过10个字符)
2.设计一个算法,实现两个10g大文件在10m的内存中将两个大文件中重复的放进第三个文件
3.快速排序的平均复杂多少?最坏情况是什么?(这个题估计就是缓和一下尴尬的气氛)
