一面:
1. 离职原因;
2. Zookeeper在项目中的使用及原理;
3. Springcloud的一些组件介绍;
4. 分布式锁:
Redis实现方式:
redis:为什么使用setnx,或者说set 和setNx有什么区别;
setNx:系统在10:05 设置一个值,并给出5分钟的过期时间,系统刚刚set完之后redis集群崩溃,10:11分系统重启成功,那么redis中set的值是否还存在?
考察点:
1、redis 的持久化:刚set完是否能够被持久化到快照或者binlog日志中;
2、假设redis被持久化,且系统重启时间超过了redis设置的过期时间,那么key是否会被清理;
zookeeper实现方式:
5. 多线程的创建方式:
1、继承thread类;
2、实现runnable接口;
3、实现callable接口;
4、线程池方式进行创建及每个参数之间的逻辑关系;
6. 服务器CPU数量及线程池数量的关系;
1、服务器cpu数量(n);
2、是IO密集型(2n个线程)应用还是计算密集型(n+1个线程)应用;
7. Mysql的sql优化
优化方向:
1、 Mysql使用过程中走索引的语句:
2、 索引的优化:
3、 亿级的数据必须使用like进行查询,如何优化?
8. 如何做一个秒杀系统;
1、MQ做限流:保证只有1000个人可以访问系统;
2、使用redis做缓存;
3、redis往mysql中进行持久化
9. 自己认为自己的技术怎么样?
二面:
1. Mysql是集群还是单节点;最大的表中数据量大约是多少?3000w-4000w;
2. Mysql主从配置是DBA去做还是自己去做?mysql主从同步的机制的原理?mysql主从复制主要有几种模式?
3. Redis持久化方式:rdb、aof;redis中哪个版本开始可以对分布式使用;
4. Nginx的使用场景;
1、请求转发;
2、负载均衡;
5. Spark主要用来做什么的?
第三面至第八面所有面试题
1.ConcurrentHashMap底层原理
2.手写一个LRU
用LinkedHashMap
3.HashMap底层数据结构
4.为什么用红黑树不用普通的AVL树
5.为什么在8的时候链表变成树
6.为什么在6的时候从树退回链表
7.线程池7个参数,该怎么配置最好
8.说一下volatile
9.volatile的可见性和禁止指令重排序怎么实现的
可见性:缓存一致性协议
禁止指令重排序:JMM模型里有8个指令完成数据的读写,通过其中load和store指令相互组合成的4个内存屏障实现禁止指令重排序
10.CAS是什么
11.PriorityQueue底层是什么,初始容量是多少,扩容方式呢
最小堆,
11,若原始大小<64,则扩容为原来的2倍+2,不然就扩容为原来的1.5倍
12.HashMap的容量为什么要设置为2的次幂
13.你知道跳表吗,什么场景会用到
ConcurrentSkipListMap,用在多线程下需要自定义排序顺序时
14.CopyOnWriteArrayList知道吗,迭代器支持fail-fast吗
线程安全ArrayList,写时复制,迭代器是采用快照风格,不支持fail-fast
15.innodb的底层数据结构
16.为什么用B+树不用B树
17.为什么用B+树不用红黑树
18.coding:无序数组怎么寻找第k大的数,写一个二叉树层次遍历
19.不知道大小的数据流取其中100个数,怎样的取法能最随机
20.n个物品每个物品都有一定价值,分给2个人,怎么分两个人的价值差最小
21.假设百度每个页面能放100个网页,每个页面都有一个评分,怎样快速找到第8页的所有网页
第九面
面试他的是一位阿里P9,这位大佬只问了一道题是:LINUX的内核是什么?然后就没有然后了......大佬直接现场发了Offer
这大佬最后定级的是阿里P7!
这位大佬最近分享了一份Java全栈知识点的面试题涉及:Java基础题、Java集合、异常&反射、IO&NIO、多线程、JVM、Linux、Mysql、Spring、Mybatis、Nginx、Redis、Dubbo、SpringBoot、Kafka 、SpringCloud、简历这些模板。
每个模块已经为大家划分好了,有多少道面试题大家也都可以看到,以及全套的大厂面试真题(全部都是含答案的),100%全部面试资料:一键三连这篇文章,然后加小助理VX:wjj2632646免费领取!
100%全部面试资料:一键三连这篇文章,然后加小助理VX:wjj2632646免费领取!