十大经典思维面试题 阿里巴巴面试题及答案( 二 )


BAT技术面试
范围
数据结构和算法:最常见的排序,最好是手写的 。
Java高级:JVM内存结构、垃圾收集器、回收算法、GC、并发编程相关(很多
线程、线程池等 。),NIO/BIO,各种集合类的比较优势和劣势(底层数据结构也应该
掌握,尤其是扩容等 。),等等 。
性能优化、设计模式和UML硕士
Spring框架:重点掌握(BAT每次必问)
相关:Redis缓存,一致哈希算法,分布式存储,负载均衡等 。
微服务和Docker容器等 。
阿里面试总结
阿里的面试特别喜欢面试技术原理,特别喜欢
多线程操作
尼奥
异步消息框架
分布式相关缓存算法等 。
JVM的加载过程和原理
恢复算法
以及具体使用的框架,会问一些参数,检查你是否熟悉 。
如果能通过第一轮,后面被录用的可能性会更高 。第一轮很重要,建议系里
统一学习面试题目!
一方:
HashMap实现原理,并发HashMap实现原理
红树林,为什么允许局部不平衡?
TCP,UDP区别,为什么可靠不可靠?
一个HTTP请求的整个过程,包括域名解析和主机位置等 。
TCP三次握手
什么是MySQL事务?四个特征,四个隔离级别
ConcurrentHashMap和Hashtable的区别
Spring IOC和AOP,又各有什么优势?
有哪几种常见的线程池?
Runnable和Thread在什么情况下用来创建线程,Runnable和Callable的区别?
如何处理方法中的异常,子线程能捕捉到吗?
synchronized和lock的区别,什么时候用synchronized和ReentrantLock?
JVM的对象分配在哪个区域,类对象分配在哪个区域 。
双方:
常见设计模式介绍:单例模式、装饰模式等 。
Java会出现内存溢出吗?什么情况下会发生?
家长委托模式,为什么这么做?
什么情况下对象进入老年?
快速排序,说说流程 。
AOP实现原理:动态代理
生物,NIO(如何实现),AIO
有哪些消息中间件?两者之间的优劣?
Redis,持久性框架
堆栈和队列
垃圾收集算法
MySQL索引
Tomcat类加载器
OOM内存泄漏,什么情况下会发生,如何排除?
三面:
介绍一下你的性能优化案例实践和你的优化思路 。
微服务和SOA的区别和优缺点
SQL慢查询的优化方案,索引和表的优化方案 。
MySQL和MongoDB的区别,海量数据的存储
比较了Redis和Memcached等缓存框架的区别和优缺点 。
请描述一致哈希算法 。
分布式会话的共享方案有哪些,各有什么优缺点?
高并发,系统有哪些优化方案,优先级顺序 。
面试总结
一方:
ArrayList和linkedlist的区别 。数组列表是否会越界 。
ArrayList和hashset有什么区别?HSET存储的数字有序吗?
易变和同步的区别
多态性原理
数据库引擎Innodb和myisam的区别
Redis的数据结构
Redis是基于内存吗?
Redis的list zset的底层实现
http与https、tcp握手过程的区别
Jvm垃圾收集算法手写冒泡
手写示例包括多线程 。
如何实现Java线程间的同步,notify()和notifyAll()的区别
数据库悲观锁和乐观锁应用场景 。
排序算法复杂,快速排序的非递归实现 。
海量数据过滤,黑名单过滤一个网址 。
双方:
SetMap底层实现的典型实现有哪些?
hashmap是如何扩展容量的,为什么是2的幂?
为什么concurrenthashmap是线程安全的,针对高并发采取了哪些措施?
线程池的参数是什么意思?
Springmvc请求流程
如何实现Spring IOC和autowired
板簧罩
SpringClound的基础建筑设计
Dubbo和SpringClound有什么区别,优缺点?
谈一致性哈希算法
三面:
分布式架构设计熟悉哪些方面?
说说你对CDN的了解,分布式缓存和本地缓存的区别 。
多线程和高并发有什么区别?
高并发下常用的技术方案有哪些?举三个高并发场景设计的例子 。
说一个JVM优化的实际案例,包括实际步骤和方法 。
Docker用过,了解过吗?Docker和JVM有什么区别?
Docker的基本架构和使用场景?
负载均衡接触过哪些开源框架,有哪些优缺点?
数据库子数据库子表怎么实现?
数据库常用优化策略?
如果让你设计秒杀系统,你的设计思路是什么,为什么要这样设计?
面试总结:


推荐阅读