注意事项

  • 拿到口头offer后,让对方公司给你发书面offer,防止公司放鸽子
  • 可以问HR的问题:薪资福利、五险一金、是否有各种补贴、是否团建(可以判断公司氛围)
  • 可以问技术部的问题:技术部多少人、目前在做的项目、录用后我的工作任务是什么、资历最老的员工做多少年开发了

    公司情况

    总共30多个人,
    技术部有10个左右(产品经理1 项目经理1 UI 1 前端2 后端4 测试2 )
    畅购完成周期 7、8个月
    传智健康 4个月

面试问题分类表

问题类型 具体问题
Java基础 string stringbuffer stringbuilder这三个的区别,分别在什么场景应用
面向对象三个特性怎么使用
抽象类和接口的区别?
Java的设计模式你知道几种(一般都是会说到单例模式)
8大基本类型中 哪些占用内存最大或者最小
for循环遍历删除List集合的数据,会报错吗
浅拷贝与深拷贝(没听清面试官的问题)
Java基础—集合篇 集合的了解?
Arraylist优缺点?(讲到查询慢增删快)为什么它查询慢增删快?ArrayList的底层是数组,那有没有限制大小,最大与最小是多少?
ArrayList与hashmap分别存值,哪个效率更高?
hashmap的底层原理有了解吗?知道它为什么线程不安全吗?
HashMap、HashTable、ConcurrentHashMap之间的区别,分别在什么场景下使用?
hashSet与hashMap 它们的区别?
hashSet是否可以存储null? 可以,只能存一个
LinkedList你有用过吗?
ArrayList的add添加方法是什么类型的数据都可以添加吗?是线程安全的吗?
HashMap的底层数据结构是什么,结合put方法说下
set的实现类可以说下嘛?treeSet与hashSet有什么区别,你可以说下
set与List是什么区别? set为什么不能存储重复的元素?
数据库 数据库有多少张表,有没有分库分表,什么是分库分表,分库分表的依据;分库分表后,跨库关联怎么实现?
什么情况会导致索引失效?
索引优化、创建索引的原则是什么
为什么添加索引 ?可以提高查询效率。说说索引的原理。B+Tree
sql优化 sql语句有做过什么优化吗?
如果有2张表,数据非常庞大,之间是有关联,现在让你去查询非常大的数据,你有什么调优方案吗?
mysql的存储引擎?不同存储引擎的优缺点
mysql死锁有遇到过吗?
MyBatis mybatis什么时候要用$不要用#号
mybatis的一级缓存和二级缓存
mybatis用来干嘛,sql多表查询写在xml语句复杂的时候怎么优化
mybatis批量插入
mybatis的常用注解?
mybatis的分页查询?分页的原理? 它的底层是经历了什么查询语句?
mybatis与hibernate的区别在哪?mybatis的查询语句有哪两种方式?
MyBatis的命名空间作用。
spring spring的事务怎么实现
spring的作用域是哪些?
介绍下spring。【会提到IOC和AOP】
aop你在项目中有用到过吗?有哪些应用场景
spring的常用注解?依赖注入有几种方法?
框架SpringCloud Eureka上如果挂掉,微服务之间还可以调用吗
springcloud用到哪些组件(一般是结合项目场景来说)
安全框架 安全框架用到几张表
spring security的用法和使用流程
Redis redis的淘汰机制
redis在项目中的应用场景
redis缓存引起的问题?
redis这一块有了解过部署吗?zsort类型有了解过吗?有用过分布式锁吗?
redis中的基本类型中,你用的比较多的是哪些?(建议结合场景说明)
redis的信息如果丢失了,你们是怎么处理的?
redis的持久化有哪几种方式?哪种方式更好?
redis的几种基本类型? sorted set可以进行排序,那它怎么可以排序呢?List你认为它是一种什么样的结构呢
Git git切换分支的命令是什么
git冲突怎么搞得
怎么解决git冲突?
Git怎么建立本地仓库
ElasticSearch(ES) es能分词的是什么,不能分词的是什么
es中ik分词器,你们直接用默认的吗
es中请对倒排索引下一个定义, 以及正排索引是什么
你们项目中用的es版本号是多少 5.6.8
商品搜索引擎为什么要用elasticSearch、 购物车为什么就要用redis 他们的区别是什么
es脚本
es的原理你有了解吗?
es跟传统数据库的区别
中间件RabbitMQ mq在什么应用场景下使用?几种工作模式?
如何保证消息队列rabbitmq的幂等性。
如何保证rabbitMQ消息的可靠性
kafka与 rabbitMQ的区别

真面试总结

其他人面试问题

分库分表,然后被问了分库分表的依据
那你能讲讲这个限流怎么实现的嘛
我想起来了 他问了我网关的负载均衡怎么实现
Redis在项目中使用也问了
购物车,我给自己挖了个坑,他问我有没有存到数据库,我说有,他问我怎么实现同步
springboot是干什么的
Eureka如果服务器挂了, 他说到心跳
还有eureka上如果挂掉,微服务之间怎么办
还问了网关的作用,以及怎么服务器调用,我压根不记得有教过,我就把nginx的拿过来用
公司有什么开发规范?
开发中有没有进行方法的封装
springcloud用到哪些组件
springboot执行流程
数据库有多少张表,有没有分库分表,什么是分库分表,业务里是怎么分的
数据库是自己创建的吗
Mq在业务哪里用到了
Sql聚合函数
nginx功能,文件里面是怎么配置的
Postman是怎么测试的,走什么库
安全框架用到几张表
单元测试的生命周期
image.png
git切换分支的命令是什么 git checkout
git冲突怎么搞得
怎么解决git冲突?

git冲突:两个已经提交的分支的相同文件相同位置的的不同操作进行了合并 情景一:多个分支代码合并到一个分支时; 情景二:多个分支向同一个远端分支推送代码时; git的合并中产生冲突的具体情况:   <1>两个分支中修改了同一个文件(不管什么地方)   <2>两个分支中修改了同一个文件的名称

解决冲突通常使用如下的步骤即可: 情况1 无冲突 先拉取远端的代码,更新本地代码。然后提交自己的更新代码即可。 情况2 有冲突 拉取远端代码。存在冲突,会报错。 此时我们需要将本地代码暂存起来 stash; 更新本地代码,将本地代码版本更新和远端的代码一致即可; 将暂存的代码合并到更新后的代码后,有冲突解决冲突(需要手动进行解决冲突); 提交解决冲突后的代码。

maven的打包、编译和安装的区别?

编译(下载指定的依赖jar包,编译)->打包(打包为war、jar文件)->安装 (安装到本地仓库)

自定义异常怎么切
spring security的使用流程
拦截器过滤器哪里用到
面向对象三个特性怎么使用
mybatis什么时候要用$不要用#号
mybatis的一级缓存和二级缓存
索引优化、创建索引的原则是什么
注册中心用的什么,和别的有什么区别
自己有什么核心竞争力?
最近在学什么新技术?
mybatis用来干嘛,sql多表查询写在xml语句复杂的时候怎么优化
前后端分离是怎么开发的
es脚本
做单体和做微服务感觉到什么差异吗
表结构数据都是 你们项目经理定好的吗?什么程度
项目经理文档给到什么程度?伪代码有给吗
gateway怎么实现限流
接口的调用
异常的处理
事务的管理
springmvc的特性
两个人同时买了最后一单,怎么解决
前后端接口怎么协调
mybatis批量插入
es能分词的是什么,不能分词的是什么
es中ik分词器,你们直接用默认的吗
es中请对倒排索引下一个定义, 以及正排索引是什么
你们项目中用的es版本号是多少 5.6.8
Git怎么建立本地仓库
Orm理解
你们项目并发量/访问量是多少? 是每天吗?
springCloud在你们项目中都用到了哪些功能 日志没有用吗
后端3个人6个月开发完毕这个项目不太现实
评价为什么要用mongdb ,既然mysql可以存,为什么你要用mongodb
商品搜索引擎为什么要用elasticSearch、 购物车为什么就要用redis 他们的区别是什么
es适合做搜索,支持分词

redis适合存储变化数据快的、不适合存储复杂的查询语句 mysql支持复杂的查询的 mongodb在查询数据上优于redis,存储价值不高的数据

fescar是什么
SpringSecurity 的用法和流程
token的使用
关于未来的技术学习你有什么打算
redis在项目中的应用场景
redis有没有持久化
es跟传统数据库的区别
项目中比较有挑战的是哪一块?为什么
Arraylist优缺点?
抽象类和接口的区别?
项目中用了多少个数据库?有多少个微服务?划分依据是什么?

项目中用到了10多个数据库,像是有订单、商品、用户、广告等数据库。创建了10多个微服务,包含业务微服务(商品、广告、订单、用户、权限……),公共组件微服务(fescar分布式事务微服务、oauth2.0授权微服务、canal数据库监听微服务…),各个微服务也存在相互调用,使用feign服务调用、以及API(JavaBean、工具类),Ribbon负载均衡和Hystrix服务熔断\降级也单独抽取出来了。 划分依据:根据业务功能进行垂直分库。垂直分库针对的是一个系统中的不同业务进行拆分,比如用户一个库,商品一个库,订单一个库。分库后将数据库部署在不同的服务器上,可以减少数据库以及服务器的压力(如果部署在单个服务器上的话,单个服务器的磁盘空间、内存也会受非常大的影响) image.png

单例模式

  1. public class SingletonDemo1 {
  2. private static SingletonDemo1 INSTANCE;
  3. private SingletonDemo1(){
  4. }
  5. public static SingletonDemo1 getInstance(){
  6. if(INSTANCE==null){
  7. INSTANCE = new SingletonDemo1();
  8. }
  9. return INSTANCE;
  10. }
  11. }

image.png

3.1上午面试复盘

这两年工作最大的成就是什么?
经过这段时间的学习,能够熟练应用java的知识和技能解决问题,独立完成所分配的工作,而不需要他人指导。从简单的重复CRUD操作到独立完成业务功能的编写,我想是我这2年来比较有成就的事。
计算机网络原理你记得什么内容?我说了http协议,那http协议是什么?如果现在项目中要用到http协议你会怎么做?

http协议它是超文本传输协议,它工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。 HTTP协议是无状态的连接,浏览器与服务器在一次连接之后,是需要靠cookie和session来保证联系的。

谈谈微服务的认识?项目中用到几个微服务?都用了哪些功能?
微服务是指很小的服务,可以把一个系统的功能切割,划分成多个子系统,小到只完成一个功能,根据用户访问量,业务处理的响应时间,分开部署提高性能,或者合并在一台服务器里面,节约成本。这个服务可以单独部署运行,不同服务之间通过 rpc 调用。

微服务架构是在SOA上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用
特点:
●服务实现组件化:开发者可以自由选择开发技术。也不需要协调其他团队
●服务之间交互一 般使用REST API
●去中心化:每个微服务有自己私有的数据库持久化业务数据
●自动化部署:把应用拆分成为一个一个独立的单个服务,方便自动化部署、测试、运维
SpringCloud是微服务的具体技术实现,它是整合其他主流框架的集合,只能使用Spring Boot 风格进行开发。
用户认证怎么实现的?
我讲到自己对底层了解比较少?然后他问我底层原理知道多少?知道底层原理有什么帮助?预计多久可以看懂底层?我说差不多2年
对前端了解多少
不知道我自己回答哪个问题时,说到了男生和女生,然后他就问我为什么提到男生?
编程的榜样是谁?想要从他的身上学习什么?

3.1下午面试复盘

首先手机淘宝上是需要登录后才可以加入购物车,这一点面试官质疑我的时候,我应该肯定的告诉他,我在来之前已经测试过,淘宝是需要登录后进行加入购物车的。而不是回答:“那我不知道”
具体问题:
要怎么实现不登录后台加入购物车?
要怎么建立用户角色权限这三张表之间的关联关系?
如果发现sql查询比较慢,要怎么进行优化?
在不分库分表的情况下, 可以进行索引优化,添加索引后不走索引是什么情况?
%like导致索引失效,但是又必须使用模糊查询来保证业务的话,有没有什么替代方案?
canal在项目中如何使用?
es底层是如何实现分词?我提到2种分词,具体是哪2种
JPA是什么?JPA是spring底下的,他可以代替MyBatis
微服务与微服务之间如何调用? 通过feign调用
feign的底层是怎么实现?
在网关上做过什么代码的编写?在网关上有做过认证吗?
用户认证如何实现的?可以说下嘛?
jwt是怎么生成的,生成规则是什么?jwt里面存放什么信息,非对称加密使用什么算法?
mq在什么应用场景下使用?几种工作模式?
业务微服务是否有分库?跨库关联怎么实现?比如用户数据库与订单数据库,怎么进行关联查询查出用户名,以及该用户名对应的订单?后台管理要显示全部用户名、以及对应的订单
分库分表?数据量太大进行分表的话,采用
分布式事务在项目中是怎么使用? 我回答:添加@GlobalTransactional,还需要添加唯一的ID,比如
本地事务有了解为什么添加@Transactional注解后,就完成事务的管理吗?可以说下事务管理的流程?
redis用来做什么? redis的定时清理垃圾图片是怎么实现的?redis的set存储什么数据?如果用户上传图片后,但是正在填写其他的信息,这时定时任务正好把图片删除要怎么处理?
在清理图片的时候,判断图片的上传时间距现在多久,只清理上传时间超过半个小时以上、并且没有和套餐关联的图片
—————————————————-
薪资希望多少?2个部门:智能制造(工厂的排班、生产线的排班、包含大数据、算法) 定制化开发(与国企合作、比如建发、医院;房地产、医疗、供应链) 去合作公司驻场
前后端分离,供应链、金融项目比较需要人 总共50多人(技术部总共40个 前端10几个)
为什么考虑离职?离职了没?

3.2上午面试复盘

技术总监问话:
做了多久java?学什么专业?
为什么选择离开?我回答:技术学的差不多,想要有更好的发展平台,想要换一个环境把之前的技术更深入
这里面的工具都学OK了? 我回答:也不是说完全会,基本的目前是会用一点,可以说换个环境再深入一点
多少时间换一个环境? 我回答: 其实还要看公司,一般如果公司好的话,当然长期发展是更好的
所以说这个公司不太适合你的个人发展? 我回答:对,之前的公司规模也相对小,我觉得2年的时间已经把技术学到手了。所以就想要换一个环境
新的环境有什么期待呢?我回答:我希望可以用到在上一家公司学到的相对新的技术,在新的公司进行迭代
你是想在新的公司利用到上一家公司技术????(面试官很质疑我)
技术最喜欢哪一项?我看你这边写的很丰富,是都有做过吗? 我回答:我当然只负责其中的一小部分。。。。。
前端有写过吗?我回答:我只能基本看懂,会知道怎么传递参数,怎么发送异步请求
小程序接触过吗? 没有
springboot的版本? 2.1.4版本的 springCloud版本 Greenwich
分布式架构中为什么前面项目使用springCloud(Eureka和Feign),后面项目使用Dubbo和Zookeeper?你有做了解吗?有自己去百度了解下 他们不同的使用场景吗?
就是说技术的选型是由其他公司人员做的?我回答:对的,我只是一个小角色
数据库了解多吗,你会直接写语句? 我不涉及到建表,以及表与表之间的关系、字段,基本的查询还是会的
复杂的查询语句有写过吗?有写过,但是如果让我手写我写不出来,在电脑上写是可以写出来的
redis用的多吗
如果让你做技术选型,你有欲望吗?我回答:以我现在的技术水平,我应该没办法选型,因为我了解的不够全面
java基础你了解的深吗?我回答:java基础您指的是哪块?是底层吗还是….
设计模式有没有用过?我回答:设计模式,我可以大概的说出几种设计模式,但是如果让我写,我可能不太行
你说下单例模式,大概都具备哪些特点?怎么保证只有一个对象


开发部门问话:
集合相关 “那我不知道这句话我说了好
集合的了解?我回答:回答到ArrayList,说到底层是数组,所以查询快增删慢
为什么它查询慢增删快?因为有索引?? ArrayList的底层是数组,那有没有限制大小,最大与最小是多少
我回答:数组的容量是16,什么情况下可以进行按照1.5倍扩容
可以一直扩容?还是有限制? List底层是什么类型的数组?
set与List是什么区别? set为什么不能存储重复的元素?
set的实现类可以说下嘛?treeSet与hashSet有什么区别,你可以说下
hashSet与hashMap 它们的区别?
hashSet是否可以存储null? 可以,只能存一个
LinkedList你有用过吗?
ArrayList的add添加方法是什么类型的数据都可以添加吗?是线程安全的吗? 对象类型 Object类型 基本数据类型的包装类 线程不安全
——————————————————————————
redis如果挂了,那购物车信息不久丢失了?
redis的持久化有哪几种方式?哪种方式更好?
redis的几种基本类型? sorted set可以进行排序,那它怎么可以排序呢?List你认为它是一种什么样的结构呢
redis中的基本类型中,你用的比较多的是哪些?

对一个字符串进行增删改查操作,你觉得分别要用string、stringBuilder、stringBuffer中的哪一个类?
mysql的存储引擎?只知道3个 3个存储引擎的优缺点 还有吗?我说:目前只知道这些
如果有2张表,数据非常庞大,之间是有关联,现在让你去查询非常大的数据,你有什么调优方案吗?
索引优化、分库、分表(数据迁移、字段迁移) 用es查询(不需要)
什么情况会式索引失效? 我只回答了一种情况
安全框架你们用的是spring security,有用过shiro吗
rabbitMQ的工作模式你可以讲下吗?消费者是竞争关系 ,指的是绑定在一个队列上吗?*与#是有什么区别?
rabbitMQ的应用场景
MQ如果挂了怎么处理?可以进行持久化,你知道怎么进行持久化?
spring的常用注解?依赖注入有几种方法?

3.2下午面试复盘

开发文档你编写过吗
ArrayList与hashmap分别存值,哪个效率更高?
面试官回答是hashmap,因为是基于哈希值寻址的,会更快
string stringbuffer stringbuilder这三个分别在什么场景应用
介绍下spring。 我说了ioc(ioc我说的还行)和aop(这个有待加强)
aop你在项目中有用到过吗?除了@Transactional事务注解外,还在哪些地方用到? (自定义异常类算吗)
银行业务,票交所,对票务系统的了解
maven的了解
mq做什么的,在项目中的应用
linux的常用命令 如何编辑文件(我说到vim/vi) 但是面试官提到set 说是可以自动跑脚本的
docker在项目中怎么用的(我说:用来保证版本环境的) 面试官说在公司中都有不同的环境,有测试环境、生产环境…..
这么小的项目 还用到Dubbo?

3.4上午面试复盘

面试题.jpg

3.4下午面试复盘

有参与过表的设计以及说项目的部署吗?
Linux的常用命令
SKU与SPU的区别
SKU表与spu表的属性分别有什么,他们如何做增删改查。
如何对……做浅拷贝与深拷贝(没听清)
在项目中遇到的最大的问题是什么以及怎么解决的?
可以回答:数据库分库之后刚开始没考虑id导致id重复,最后想出解决方案:雪花算法
如何保证消息队列rabbitmq的幂等性。
有没有编写过自定义注解

3.5上午面试复盘

如何保证rabbitMQ消息的可靠性
kafka用过吗?kafka与 rabbitMQ的区别
会做代码优化嘛 平常写过什么模式
这个模块Oauth2.0都是你负责独立完成的嘛?
ID如果使用uuid,对比雪花算法有什么缺点?结合BTree说说 uuid分列,雪花算法直接按顺序排放
canal你们在项目中哪里用到过?
项目的并发量 数据量多少
微信第三方的鉴权你有关注嘛 怎么实现的
spring底层是怎么把bean创建到容器中的
手写单例模式
Readis的缓存用的是什么?我回答了内置集群,然后他问,那你有了解过吗?

3.5下午面试复盘

GC垃圾回收机制
在开发过程中,有没有碰到过OOM(内存溢出)——我回答把无关的服务关掉???面试官:what?
分布式ID你有实现吗?有了解雪花算法?
redis的应用场景
登录验证码,如何防止机器去刷验证码?我讲到前端30s后倒计时,置灰。那后台如何防止机器去刷验证码?
假设用不同浏览器登录,验证码会不一样吗?~~ 我回答到存放时间、浏览器IP,都不对×~~

不一样。可以将验证码分别存放在cookie和redis中

前端有写过吗?
前后端比例如何?面试官提到:你们这个是商城,前端人员还比较少?开发人数多少?
开发中有遇到什么问题? 我讲到ID自增会重复,用到UUID,但不好排序,所以引入雪花算法。面试官对此回答不满意
为什么添加索引 ,可以提高查询效率?索引的原理。
sql语句有做过什么优化吗?
使用explain语句来查询,你会关注哪个字段? Type
介绍自己写的比较好的模块。
你们这个消息中间件在项目中用的多吗?消息不过来,队列阻塞怎么处理?
es倒排索引的原理?聚合有用过吗?
hashmap的原理你知道吗?map如果put一个元素进去,可以讲下它的流程吗?你说的是key,那它的值是
线程在项目中有写过吗?并发量多吗?数据量多吗?
说下你在开发上的优缺点?

优点 好学 可以接受加班 良好的记录习惯 缺点 代码写的不够多、接触过的业务比较少

工作上交给你一个任务,你要怎么处理?
你们目前加班多吗
你现在想找一个什么样的公司?
19年进去后在公司有进行评优吗?
访问一个网站,一般都会经过哪些步骤?
单点登录是你自己搭建还是直接调用就可以?
jwt你有了解过?jwt是用到什么算法生成?jwt怎么跟后台做交互?jwt的过期时间你有动态地修改过吗?
redis的信息如果丢失了,你们是怎么处理的?
cloud的配置中心你有了解过吗
Nacos了解吗
eureka有使用过密码登录吗?
网关这一块有了解过动态路由的机制吗?可以在配置文件中配置。有了解过他可以重载一个接口进行配置吗?
网关的其他东西有了解过吗?比如限流
有用过接口文档吗?接口变动很大,不会麻烦吗
Feign在项目中用来做什么?
spring Boot与spring MVC有什么区别?
spring Boot的常用注解?
spring的两大核心
aop在项目中在哪些地方用到? 自定义异常和日志记录
自定义异常你们的切点是怎么样的?切点和切面是什么样的?
有用aop写过操作配置吗
mybatis与hibernate的区别在哪?mybatis的查询语句有哪两种方式?xml和接口中 哪种方法比较好?我回答了接口比较好,但面试官回答xml配置文件比较好,可以解耦,java代码与sql语句分开;可以减少在java中编写sql脚本,像是if…else
mybatis的常用注解?如果查询语句是包含select * from table where id in (…)

面试者回答:foreach标签可以用来进行遍历的

mybatis的分页查询?分页的原理? 它的底层是经历了什么查询语句?

面试官答:分页进行2次查询,一次limit进行分页,另一次查询总数

mysql的优化
mysql死锁有遇到过吗? 出现死锁,mysql会出现date状态
有用到过多线程吗?
内存不会立即释放?你有了解过GC什么时候释放内存吗? 老年代与新年代……
hashmap的底层原理有了解吗?知道它为什么线程不安全吗?

因为hashmap有个自动扩容机制,在取值赋值删除值的时候,多个线程操作会引起死循环 会导致 Hashmap出现死循环是因为多线程会导致 Hashmape的Enty节点形成环链,这样当遍历集合时 Entry的next节点永远不为空,从而形成死循环

redis这一块有了解过部署吗?zsort类型有了解过吗?有用过分布式锁吗?
sql的索引结构有了解过?
es用它做什么?es的分组查询有使用过吗?
定时器用它来做什么?
docker用它做什么吗?
linux的常用命令你会哪些?查看进程的命令你知道哪些?

3.8上午面试复盘

ThreadLocal的作用是什么?线程池的状态有哪些?线程池的好处是什么?线程的实现方式有几种?哪一种比较好,为什么?sleep与wait的区别?有没有在项目中写过多线程,线程池?
进程与线程的区别
mysql的间隙锁你知道吗?
MyBatis的命名空间作用。
mysql的主键外键索引的区别,索引的底层数据结构
MyBatis的#与$的区别
实现Serializable接口是用来做什么的?
异常类有哪些
怎么捕获异常
varchar与nchar

jvm的内存模型有了解吗?
spring的事务怎么实现
spring的作用域是哪些?
MQ如何防止消息丢失

网关的负载均衡怎么实现
注册中心是用来做什么的?
讲下网站的业务流程?我讲了浏览商品-下单支付 他让我讲下逆向过程

3.10上午面试复盘

es的原理你有了解吗?讲到倒排索引,让我讲下正排索引

正排索引表是以文档的ID为关键字,表中记录文档中每个字段的值信息,主要场景是通过查询id来把整条文档拿出来,一般mysql关系型数据库是这种方式来查询的 正排索引可以理解为(文件内容会对应一个分词后的集合list<< item >>) Map< id,list< item>>

倒排索引表以字或词为关键字进行索引,表中关键字所对应的记录项记录了出现这个字或词的所有文档,每个字段记录该文档的ID和关键字在该文档中出现的位置情况。 倒排索引可以理解为Map< item, list< id>>,能够由查询词快速(时间复杂度O(1))找到包含这个查询词的文件的数据结构。

image.png
image.png
redis缓存引起的问题? 缓存雪崩、缓存穿透、缓存击穿,分别的处理方式
你网站有没有考虑到并发问题?
Eureka怎么知道服务宕机的,你知道吗?

https://developer.51cto.com/art/202005/616010.htm Eureka Client的功能之一: 服务续约 Eureka Client 注册到 Eureka Server 上之后,默认情况下,Eureka CLient 每隔 30 秒就要向 Eureka Server 发送一条心跳消息,来告诉 Eureka Server 我还在运行。 如果 Eureka Server 连续 90 秒都有没有收到 Eureka Client 的续约消息(连续三次没发送),它会认为 Eureka Client 已经掉线了,会将掉线的 Eureka Client 从当前的服务注册列表中剔除。

微服务中用到什么组件?
依赖注入模型?
我讲到超时订单使用死信队列处理?面试官说应该是延迟队列,还说到延迟队列和死信队列不一样
Ribbon与nginx都是用来做负载均衡的 有什么区别?

nginx 是客户端所有请求统一交给 nginx,由 nginx 进行实现负载均衡请求转发,属于服务器端负载均衡。 既请求由 nginx 服务器端进行转发。 Ribbon 是从 eureka 注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮询负载均衡策略。既在客户端实现负载均衡。 应用场景的区别: Nginx 适合于服务器端实现负载均衡 比如 Tomcat ,Ribbon 适合与在微服务中 RPC 远程调用实现本地服务负载均衡,比如 Dubbo、SpringCloud 中都是采用本地负载均衡。

区别 Nginx: 服务端、硬核、粗暴、硬件与配置、生产环境应用同样适用。 Ribbon:客户端、软装、精巧、代码与集成、适用于开发中应用,Spring Cloud集成简单,轻松提出不健康服务器。

hashtable为什么线程不安全?
8大基本类型中 哪些占用内存最大或者最小
for循环遍历删除List集合的数据,会报错吗
distinct有什么不好的地方?
spring的aop你在项目中的哪些地方使用到? 讲到日志,他问我日志有没有考虑多线程的问题、并发的问题….