就在我还在为 618 刷淘宝清购物车的时候,群里忽然弹出一条消息引起了我的注意:之前去了阿里的学长,在群里说要内推,我就迫不及待的问了下:具体的岗位需求是什么样的?然后就有了接下来的聊天内容
当然看了看职位要求,再看看自己,觉得自己还是太菜了!对不起,我不配,还是安心搬砖吧。不过最后,我还是厚颜无耻的让学长帮忙总结了下阿里的面试题以及复习资料,这里分享给大家!
1、JVM 内存模型
2、JVM 垃圾回收算法
3、JVM 运行内存的分类
4、Java 内存堆和栈区别
5、JVM 垃圾收集器有哪些?以及优劣势比较?
6、GC 回收机制
7、GC 标记对象的死活
8、MinorGC&FullGC
9、内存分配与回收策略
10、Java 类加载机制
1、进程和线程的区别
2、线程安全的定义、线程的状态
3、多线程的实现方式(Runnable 和 Callable 的区别)、start/run 方法的区别
4、wait()/notify()/sleep()/yield()/join()几个方法的意义
5、notifyall()这块涉及到资源池和锁池,可以加深理解下
6、线程池的创建方式,7 大参数、阻塞队列、拒绝策略、大小如何设置
7、锁机制:乐观锁 CAS、悲观锁 synchronized 和 ReentrantLock、实现原理以及区别,非常重要,基本每次必问,可以多掌握一些,看到源码层面,每次这块我都能给面试官说五到十分钟不停。
8、锁优化:偏向锁、轻量级锁、自旋锁、适应性自旋锁、锁消除、锁粗化等
9、Java 内存模型和 volatile 的原理,以及 volatile 和 synchronized 区别
10、ThreadLocal 线程本地存储原理,源码层面
11、内存泄漏问题
12、AQS 同步队列器原理,CLH 队列
13、AQS 组件:ReentrantReadWriteLock、CountDownLatch、CyclicBarrier、Semaphore 原理掌握
14、JUC 原子类,原理:CAS+volatile + native 方法来保证操作的原子性
15、集合框架的多线程实现类:CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap、ConcurrentSkipListMap、ConcurrentSkipListSet、ArrayBlockingQueue、LinkedBlockingQueue、ConcurrentLinkedQueue、ConcurrentLinkedDeque
1、手撕 SQL 语句
2、数据库事务、隔离级别、Innodb 和 Myisam 的区别
3、锁机制(悲观锁、乐观锁、行锁表锁、独占锁共享锁等等)
4、MVCC、NK-Lock
5、索引的数据结构(B+树)、索引优缺点
6、最左前缀原则、索引优化
7、聚簇索引、覆盖索引
8、数据库三大范式
9、主从复制、主从一致、分库分表等等问题
1、Redis 为什么要作为缓存? 高性能和高并发
2、redis 和 memcached 的区别
3、redis 常用数据结构、以及数据结构底层,常考到跳表的结构
4、定期删除、惰性删除
5、内存淘汰机制
6、持久化机制
7、缓存雪崩、缓存穿透、缓存击穿
8、并发竞争 key 问题
9、缓存和数据库双写时的数据一致性
10、为什么单线程还那么快?(非阻塞多路 IO 复用)
11、select、poll、epoll 区别
12、五种 IO 模型
13、redis 集群、哨兵机制
14、分布式锁
什么是 Spring 框架?Spring 框架有哪些主要模块?
使用 Spring 框架有什么好处?
什么是控制反转(IOC)?什么是依赖注入?
请解释下 Spring 中的 IOC?
BeanFactory 和 ApplicationContext 有什么区别?
将 Spring 配置到你的应用中共有几种方法?
什么基于 XML 的配置?
什么基 Java 的配置?
怎样用注解的方式配置 Spring?
描述 Spring Bean 的生命周期?
描述 Spring 中各种 Bean 的范围?
什么是 Spring 的嵌入 beans?
Spring 框架中的单例 bean 是否是线程安全的?
请举例说明如何用 Spring 注入一个 Java 的集合类?
请举例说明如何在 Spring 的 Bean 中注入一个 java.util.Properties?
请解释 Spring 的 Bean 的自动生成原理?
请辨析自动生成 Bean 之间模块的区别?
如何开启基于基于注解的自动写入?
当然整理的面试题还有很多,文章中就不多做分析,我特意建了群,把文档资料上传到了群文件和网盘
资料领取:有需要的,可以点击这里即可获取到文章中的文档,资料!