kuayue
为什么这个项目要用继承Thread类的方式实现多线程?
线程池和继承Thread类实现多线程有什么区别,对应什么场景?
如果现在有一个业务,计算量比较大,另一个业务,消费者消费topic的数据,可能存在消费能力不够的情况,分别让你使用线程池你怎么确定方案?
假设现在有好几个业务要使用线程池,你是复用原先的线程池,还是每个业务一个线程池?
每个业务一个线程池的话,假设要使用线程池的业务很多,怎么处理?
Kafka的消费者端消息消费来不及会导致什么问题?
Kafka消息堆积会导致什么问题?Kafka内部有什么处理策略?作为开发怎么解决?
除了增加消费者,有哪些参数可以略微调整解决这个问题?
实现生产者发送数据的时候通常要设置什么参数,有什么意义?
消费者端使用的时候要设置什么参数?为什么?
什么时候会发生消息丢失和重复消费?
自动提交和手动提交场景下,会发生重复消费还是消息丢失,是其中一种还是兼而有之?
为什么消费的时候不能自动提交offset?
什么时候会发生再均衡?
为了避免这个问题,有什么办法?
session.timeout.ms了解吗?是什么超时?
max.poll.interval.ms了解吗?生产上怎么根据业务调整这个参数?
消费者和partition配比是怎么样的?一对一还是哪一方多一些?为什么?
es了解吗?什么场景要使用es?
为什么es复杂条件搜索数据更快?倒排索引结构了解吗?
es能替代MySQL吗?
es的深分页问题详细描述一下?为什么有这个问题?
深度分页你怎么解决的?
scroll和search after有什么区别?
项目协调的过程中,为了推动项目的快速落地,你采用什么办法?
谈谈你对hashmap的理解
数据结构,初始大小,扩容方式,hash算法,put,哈希冲突
concurrentHashmap的理解
hashmap 1.7和1.8的区别
1.8引入了红黑树
1.7头插法,1.8尾插法(遍历链表,统计长度)
hash算法:1.7扰动了9次,1.8只扰动2次
juc包下的其他工具有哪些?
AQS,lock,ThreadLocal,ReentrantLock
分布式锁有什么实现的?原理是什么?
说了redission
setnx指令了解吗?
说了会有很多问题,总的来说就是无法保证数据的一致性
mysql的优化思路
联合索引为什么可以提高查询速率?
减少回表查询
锁表具体锁在哪一块?
锁在索引上
mvcc了解吗?
限流的思路?
连接池,数据库连接池,消息队列,锁(分布式锁等限制颗粒度)
spring的IOC和AOP了解吗?
二面:现场面试
遇到过最复杂的问题
sql解析异常
mybatis一级缓存导致的数据不一致问题
Ouath2实现方式?和应用场景?
通过三部分进行信息存储,然后通过不同令牌形式去做不同实现
应用场景:结合jwt和spring安全框架,可以做单点登录的实现
Ouath2和spring安全框架:提供具体鉴权思路和流程
jwt:提供更安全的token
说一下遇到过的sql优化问题?
不会走索引的情况?
序列化和反序列化的工具用过哪些?
说了阿里巴巴fastJSON和jdk本身序列化
序列化id解决什么问题的?
for 和 foreach有什么区别?
for支持通过index下标定位,foreach从头遍历到尾,是增强版for循环
使用 foreach 需要满足什么条件?
不能对元素进行增删操作,修改是可以的
hashmap的数据结构说一下?
haspmap的equals方法和hashcode方法有什么应用场景?
调用get方法时,会先根据hashcode方法计算index值,然后通过equals判断链表各值
大小顶堆解决什么问题?
说了优先队列是用它实现的
mybatis分页说一下?
使用 RowBounds进行分页,是针对结果集进行的内存逻辑分页
在sql中直接写分页语句
使用分页插件进行分页,原理是使用mybatis提供的插件接口,实现自定义分页,
说了用代理模式做的实现,静态代理模式
死锁的几种场景?
本质都是互相抢占资源导致死锁的场景,比如互相转账
设计模式六大原则?
ioc说一下?
三面:现场面
Integer线程安全吗?
是,和String一样,是final修饰的
乐观锁或者悲观锁能在多机器节点下保证线程安全吗?
可以,数据库独一份,和几个机器节点无关
ip2region的数据结构是怎样的?
翻翻代码看一下
平时兴趣爱好?
栈和队列的区别?用栈怎么实现队列?
最熟悉的leecode题?
说了两数之和,出入参没说明白...
hashmap的上级接口是什么?
map
左连接和右连接有什么区别?
怎么理解er图?
byd
1、自我介绍;
2、ArrayList 和 LinkedList 查询元素的时间复杂度?
3、HashMap 查询元素的时间复杂度?数据量达到十万,查询元素的时间复杂度?如何比较元素是否重复?红黑树的特点?红黑树如何保证自平衡?红黑树出现循环依赖如何探测?Spring 的循环依赖和解决方法?
4、递归如何转成迭代写法?如何避免出现栈内存异常?假设一个方法三个变量,每个变量4byte,什么时候会出现栈内存异常?
5、线程的状态有哪些?子线程异常如何捕获?Callable 接口和 Runnable 接口区别?为什么创建了 Callable 接口?
6、线程调用 wait,线程调用 sleep,线程由于 synchronized 同步锁被阻塞的情况下,那种情况会占用 CPU 资源?为什么?
7、MySQL 的覆盖索引是什么?为什么'like%'索引不会失效?索引的底层数据结构是什么?B+ 树的树高多少?树节点存储的数据是什么?
拷打项目
分库分表
mysql的存储引擎,区别
介绍反射和应用场景
垃圾回收机制
进程通信
HTTP头结构
HTTP状态码,有遇到过非200的状态吗
Git平常用来做什么,用哪几个命令
会linux吗?(我不会咋整😰)
8个基础数据类型
AOP,DI,IOC
mybaits和hibernate的区别
mysql数据库的连接方式
static关键字的作用
栈和堆的区别
java三种集合
spirng的实现方式???好像是这个
jvm垃圾回收机制
什么是Spring IOC和AOP
什么是缓存穿透、缓存雪崩
什么是数据库事务,有哪几个特性
MySQL慢查询如何解决
java语言特性
面向对象特点
了解什么框架
cloud框架核心组件
gateway作用
springboot用哪些注解
resource和autowrid区别
hashmap1.7 1.8
jvm:
作用
5大区,线程私有
新生代老年代
消息队列:
mq用过哪些
手动ack 说一下核心代码
数据库:
索引有哪些
索引失效有哪些
函数用过哪些
having什么时候用,就group by才用吗
连接有哪些
redis和juc没问
5.如何遍历一个map
6.mybatis中$和#的区别
7.mybatis和mybatisplus有什么区别
8.介绍一下你其他的项目
1. final关键字作用
2. 基本数据类型
3. string的常用方法
4. 抽象类和普通类
5. IO流
6. BIO和NIO
7. Java的集合
8. hashmap和hashtable
9. arraylist和vector
10. AOP在spring中的应用
11. redis的数据类型
12. set和zset区别
2.==与equals区别
3.数据结构,熟悉的讲讲(线性表)
4.线性表在Java中的应用
5.hashmap底层
6.线程使用
7.线程的生命周期
8.锁,如何释放锁
didi
1.排序算法了解哪些,快排,快排复杂度,优化,堆排序,建堆过程
2.反射了解么,原理是什么
3.treemap和linkdedhashmap区别,实现原理
4.jvm类加载的过程讲讲,符号引用是什么,哪些情况会发生初始化
5.spring的循环依赖,怎么解决的,为什么需要加个三级缓存,二级不行么
6.springboot有什么特点,相比与spring,了解springboot的自动装配的一个原理么
7.kafka支持事务么,你们项目中有使用么,它的原理是什么
8.怎么统计一亿用户的日活,hyperloglog有什么缺点,bitmap不行么
算法:求一个环形链表的环的长度
1.redis的几种数据类型,你们用过哪些,zset有用来做什么
2.垃圾收集器,cms垃圾收集过程,为什么停顿时间短,有什么缺点,concurrent mode failure怎么办,内存碎片怎么解决,为什么不用标记整理法
3.线程池原理,核心参数,线程数设置,参数动态调整后变化过程,Tomcat线程池原理,常用的线程池,你们一般使用哪种,为什么,会有什么问题,线程抛异常怎么办,阻塞队列原理
4.做过分库分表么,为什么要分库分表,会有什么问题,多少数据适合分库分表,跨库,聚合操作怎么做
项目介绍
算法:给定一个二叉树,找到该树中两个指定节点的最近公共祖先
1.nio讲讲,实现原理,优缺点
2.了解netty么,讲讲netty的设计模型,架构,使用场景
3.zookeeper读写数据过程
2.线程池有哪几种
3.基本数据类型,占的大小位
4.==和 equals
5.接口和抽象类区别
6.创建线程的方式、启动方式
7.execute 和 submit 的区别
8.runnable 和 callable 区别
9.Linux 中,awk、find、grep -v、grep -c
10.hashmap 底层
11.concurrentHashMap 底层
12.left join 和 right join
13.写一个 controller(post,json)
14.找到未排序数组中缺失的数字
15.单例模式
16.long 和 double 都是 64 位,
17.double 也能表示的更多,那为什么还需要 long 呢(因
为double 不连续)
18.说一下 java 类的三大特性:封装、继承、多态
19.了解 java 的堆和栈吗
20.jvm 内存管理
21.java 中抽象类和接口有什么区别?一个类可以实现多个接口吗
22.两个乱序数组求交集(哈希)
23.快排
24.说一下
25.集合类的实现
26.红黑树:平衡二叉排序树
27.ArrayList 怎么扩容了解吗
28.HashMap 和 HashSet 怎么实现的
算法题:
实现一下LRU 缓存机制
介绍一下数据库redis 和 mysql 有哪些不同
怎么保证数据一致性?
mysql 引擎介绍一下?myisam 和 InnoDB 的区别
如何数据库调优?
联合索引、覆盖索引介绍一下?
网络模型7 层
tcp 三次握手讲一下,为什么不 2 次呢?
四次挥手说一下,为什么是4 次?
负载均衡了解么?
讲一下Ngnix 的算法
算法题:
递归方式对数组进行排序(果断选择快排,有逼格+太熟悉了)