第一篇
一面 2019/4/15 牛客网
1、自我介绍
2、介绍一下 mysql 索引?为什么用 B+树?
3、网络 IO 模型?什么是多路复用 IO?select 和 epoll 的差别?select 具体过程?
4、Java 类加载机制?双亲委派模型的好处?
5、进程和线程的区别?线程是不是越多越好,为什么?操作系统怎么调度的,调度算法?
java 中 cpu 调度 6、是线程还是进程?
7、数据库事务?隔离级别?
8、Java 线程变量怎么实现的?内存模型?
9、手撕代码
10、用数组模拟循环链表
11、堆排序实现
12、JAVA 并发包组件了解多少
13、线程的一个状态转换图
14、HashMap 和 HashTable 以及 CocurrentHashMap 详细说明
15、SpringMVC 的整个执行流程
二面 2019/4/15 来自于牛客网
1、自我介绍
2、数据库索引?B+树?为什么要建索引?什么样的字段需要建索引,建索引的时候一般考
虑什么?怎么解决分库分表?
3、数据库事务特点?事务隔离级别?项目中的事务实现?脏读、不可重复读、幻读各举个
例子?
4、Spring bean 的生命周期?默认创建的模式是什么?不想单例怎么办?
5、谈谈 Kafka 和 ZooKeeper 了解情况?
6、设计模式,单例模式,怎么保证线程安全?锁效率太低,怎么提高效率?CAS?CAS 本
质是什么?什么是原子性?Compare and Swap,为什么能保证原子性?分布式锁?
7、还有什么设计模式?工厂模式有几种,都讲讲?
8、数据库表怎么设计的?数据库范式?设计的过程中需要注意什么?enum 类型的值一般
怎么存?如果有一个十几位的小数为了不丢失精度怎么存?tinyint 几个字节,int 几个字节?
第二篇
一面 2019/4/22 来自于牛客网
1、项目
2、笔试题,循环小数,说一下思路
3、说一下 SpringMVC 和 Spring,hibernate
4、MySQL 数据库和 Redis 说一下
5、分布式锁怎么使用,setnx 和设置超时是两条指令,怎么保证原子性,可以使用 lua 脚
本保证在事务中执行 6、你们的 Redis 是怎么用的,如何做缓存更新
7、jvm 内存分区,线程池工作原理
8、算法题,abbaabbaaa 这样的字符串,怎么变成 aaabbbaaa,这种形式的字符串。其中
a 和 b 的个数都可以是 0 到 n 个
二面 2019/4/22 来自于牛客网
1、拿了几个 offer 了 2、对拼多多有什么了解
3、我们工作压力大你能接受么
4、薪酬你预计要多少
5、城市选择问题
6、职业规划
第三篇
一面 2019/11/21 来自于牛客网
1、聊项目
2、Java 中的 HashMap、TreeMap 解释下?
3、TreeMap 查询写入的时间复杂度多少?
4、ConcurrentHashMap 怎么实现线程安全的?
5、HashMap 多线程有什么问题?怎么解决?
6、CAS 和 synchronize 有什么区别?都用 synchronize 不行么?
7、get 需要加锁么,为什么?
8、volatile 的作用是什么?
9、给我一张纸,画了一个九方格,都填了数字,给一个 MN 矩阵,从 1 开始逆时针打印这
MN 个数,要求时间复杂度尽可能低,可以先说下思路
10、有什么想问我的?
二面 2019/11/21 来自于牛客网
1、自我介绍下
2、手上还有其他 offer 么?
3、部门组织结构是怎样的?
4、系统有哪些模块,每个模块用了哪些技术,数据怎么流转的?给了我一张纸,我在上面
简单画了下系统之间的流转情况
5、链路追踪的信息是怎么传递的?
6、SpanId 怎么保证唯一性?
7、RpcContext 是在什么维度传递的?
8、Dubbo 的远程调用怎么实现的?
9、Spring 的单例是怎么实现的?
10、为什么要单独实现一个服务治理框架?
11、谁主导的?内部还在使用么?
12、逆向有想过怎么做成通用么?
13、有什么想问的
第四篇
一面 2019/7/29 来自于牛客网
1、说说 8 种数据结构
2、栈和队列的区别
3、生活中栈的例子:真没想到,这是我整场面试里唯一不会的
4、算法题:口述,还是 TOPK 原题
5、n 个节点的树可能的高度。最高和最低的高度
6、BST 树的高度
7、项目难点
8、redis 的使用场景,和 memry***的区别
9、UDP 和 TCP 的区别
10、Mysql 的储存引擎和索引
11、问了一个订单数据表(uid,orderId,time,moblie)每天 2000w 条,要存 1 年。
应该怎么存?
12、最后还就我的职业规划,跟我聊了好几分钟!
二面 2019/7/29 来自于牛客网
1、先问项目。web 项目背景。如何应对高并发、如何做分布式事务
2、看过源码嘛?
3、1、8 版本的 concurentHashMap 在单线程下和 HashMap 效率有什么区别
4、多线程方面学到了什么?Netty 线程模型介绍一下、Java 线程池四种介绍一下?
5、Nio 特性介绍
6、你怎么自学看什么书
7、JMM 内存可见性
8、还有什么能保证可见性:sync 和 Lock
9、怎么打断线程
10、问我之前的笔试题
11、手写代码:没有任何算法,直接按题意翻译就行
第五篇
一面 2019/5/21 来自于牛客网
1、两个升序数组求并集
2、问项目,讲了两个项目
3、提了一下 Redis 做缓存,Redis 分布式锁
4、怎么保证 Redis 的高可用
5、问了下 MySQL 数据结构,问看过源码没
6、JVM 垃圾回收算法
7、HTTPS 的实现
8、反问环节
二面 2019/5/21 来自于牛客网
1、项目
2、滴滴实习(调度系统),项目这里问了几个刁钻的问题
3、redis setnx 分布式锁
4、redis 的 ttl 指令底层实现,redis 过期策略
5、redis 数据类型,跳表实现
6、JDK 1、7、1、8 区别
7、HashMap 全家桶
8、CAS 原理
9、MySQL 一条语句的执行过程,解析过程?查询缓存?怎么判断是否命中?
10、a_b_c 联合索引,问你哪些索引可以正常使用,哪些失效
11、MySQL 的执行计划
12、colse_wait,time_wait
13、撕算法:leetcode 区间合并做了升级,比原来难一点。LC 的 hard 难度
第六篇
一面 2019/9/8 来自于牛客网
1、问项目相关的问题
2、ConcurrentHashmap 的原理,有什么改动,进行了哪些优化
3、Synchronized 关键字原理,CAS 原理,Monitor 对象
4、红黑树性质,为什么 ConcurrentHashmap 用红黑树
5、红黑树,二叉搜索树,平衡二叉树性质的对比,平衡二叉树的删除操作
6、redis 持久化,和一些命令
二面 2019/9/8 来自于牛客网
1、问项目相关的问题
2、锁相关的问题,有什么锁,介绍一下
3、重做一下笔试题第二题,字符串能不能构成环那个
4、给一个数组和一个 target,找到一个子序列使得和为 target
5、工作时间调度问题。给两个数组,一个代表工作开始时间,一个代表工作结束时间,时
间有重叠。问这段时间内最大能完成几项工作
第七篇
一面 2019/9/20 来自于牛客网
1、毕设项目相关
2、自己做的项目相关
3、redis 实现分布式锁
4、自己实现一个二阶段提交,如何设计
5、算法题,任务调度
二面 2019/9/20 来自于牛客网
1、自己做的项目表的设计
2、用自增键做用户表的主键的潜在危险
3、nginx 负载均衡时如何判断某个节点挂掉了
4、redis 的数据类型, 使用场景
5、redis 的存储方式和优劣
6、java 的异常
7、jvm 垃圾回收策略
8、k8s 的存储方式是怎样的
9、Spring AOP 原理是什么,怎么使用,什么切点什么是切面,举个例子
10、现场写单例
11、算法题,给一堆硬币的 array,返回所有的组合
12、复杂度是多少,有没有什么可以优化的地方
13、毕设项目讨论
第八篇
一面 2019/9/12 来自于牛客网
1、自我介绍
2、简历上的项目
3、Hashmap 的 get()方法
4、Hashmap 的线程安全问题
5、代码:判断单链表有没有环,找到环入口点
6、***模式、单例模式
7、数据库大表查询
8、数据库联合索引
9、B+树和最左前缀原理
10、说说自己的职业规划
二面 2019/9/12 来自于牛客网
1、自我介绍
2、简历上的项目
3、原子类 AtomicInteger 的实现原理,CAS 机制
4、线程和进程
5、线程和线程池
6、StringBuilder 和 Stringbuffer
7、ArraryList 的 get 方法和 add 方法时间复杂度
8、数据库事务
9、数据库分库分表,水平上怎么分,垂直上怎么分
10、用了消息队列有哪些好处
11、代码:字符串反转,递归的方式
12、聊了一下其他非技术的;
13、有什么要问面试官的
第九篇
一面 2019/9/21 来自于牛客网
1、自我介绍
2、介绍项目
3、redis 使用场景
4、redis 集群
5、乐观锁和悲观锁
6、线程池类型?d 和 fixed 区别?
7、hashmap 和 concurrenthashmap 介绍?
8、一致性哈希介绍
9、gc 算法说一下
10、笔试第四题说下思路
11、手撕算法,树层次遍历变形题,leetcode 原题
12、有什么想问的
二面 2019/9/21 来自于牛客网
1、自我介绍
2、项目介绍
3、笔试第四题说下思路
4、手撕算法,最大连续子数组和
5、还用过 vue,介绍一下?
6、分布式了解哪些?
7、nginx 都用了什么?
8、平常怎么学习的?
9、有什么想问的?
第十篇
一面 2019/9/28 来自于牛客网
1、自我介绍
2、基本数据类型,分别所占内存大小
3、栈和队列
4、平衡二叉树、完全二叉树、满二叉树的概念
5、HashMap 的实现原理,Java8 中有什么改变
6、红黑树
7、ArrayList LinkedList
8、多线程
9、生产者消费者问题
10、实例锁和类锁
11、HashMap concurrentHashMap HashTable
12、线程池
13、JVM 内存模型
14、事务的特性
15、阐述隔离性
16、Mysql 中的隔离级别
17、引实现机制
18、手写快排
二面 2019/9/28 来自于牛客网
1、自我介绍
2、聊简历
3、JVM 内存模型
4、GC 算法
5、HashMap, concurrentHashMap
6、线程安全的定义
7、保证线程安全的方法
8、悲观锁和乐观锁
9、volatile threadLocal
10、二叉树的非递归中序遍历
11、问答
求职必备刷题官网:https://github.com/bennyrhys/interview
【更多互联网公司笔试面试真题请关注“让我遇见相似的灵魂”公众号】