美的集团后端实习面试

前言

碎碎念没必要看

不过,hr还有面试官都很好,面试官也不严厉,虽然没开摄像头,但是面起来很舒服,然后面试官感觉就像是跟同龄人聊天一样,很可爱的小姐姐😃。~~

流程啥的就不说了,经典介绍 + 八股项目拷问 + 反问,没有算法。顺便被夸奖了经验挺丰富的hhh

Q&A

IOC和AOP的区别

这个问题感觉有点抽象。。。感觉他们没啥关系,硬要说的话也是AOP是在Spring框架的基础上实现的,而Spring的核心就是IOC

回答就是经典的IOC + DI咏唱,AOP的咏唱:切点,通知,顺便说了一下AOP如何实现的,简单来说就是JDK动态代理和CGLIB,还有和静态代理的区别。

集合和链表里哪些是有序的,哪些是无序的

抽象问题,我以为是问的TreeSet,PriorityQueue这种。。。

下面随便挑几个讲讲就行了

有序:

  1. ArrayList、LinkedList、Vector、Stack
  2. TreeSet
  3. PriorityQueue、双向队列Deque
    无序:
  4. HashSet、LinkedHashSet
  5. HashMap。。。。
    总结:
    有序:list,链表,队列,栈,treeset,
    无序:set除了treeset,map除了LinkedHashMap

有用到什么设计模式吗

我用到过

模板方法模式、工厂模式、策略模式。。忘了,自己结合项目回答吧。

消息队列相关

Kafka和RocketMQ分别适合哪些场景

有用过分区顺序消息吗

有了解过RocketMQ的消息大小限制吗

简单介绍一下RBAC的原理

直接看JavaGuide的原理就行,没难度

自定义任务引擎

为什么使用了Quartz而不是XXL-JOB

因为公司的陈年老项目

有多线程的经历吗,简单举例有哪几种线程池

回答:有看过线程池的的源码,然后线程池八股,顺便穿插了一些源码里的东西。

ForkJoinPool适合哪些场景

  1. 递归任务:任务可分,可并行处理,例如递归和分支
  2. 大规模的数据处理:当需要处理大量数据和数据分块时
  3. CPU密集型任务:适合大量计算的场景,能够利用多核处理器的优势
  4. 任务之间相互独立:任务之间没有太多依赖关系,可以独立执行时,使用ForkJoinPool可以最大化并行度减少任务之间的等待时间
    #todo
  • forkJoin的源码和parralelStream的原理看看
    简单讲解一下,顺便说ParallelStream的底层就是ForkJoin

并行流有什么缺点

  1. 线程开销:底层是使用ForkJoinPool来管理线程的,需要创建和管理线程,任务数量较少时会影响性能
  2. 线程安全:如果操作不是线程安全的可能会导致
  3. 非确定性:执行顺序不确定,所以每次执行的结果可能不同
  4. 资源竞争:会使用共享的ForkJoinPool,如果别的任务也使用这个并行流,那么会出席那资源竞争,同时使用的
  5. 调试困难:
  6. 不适合强依赖性的任务

RPC相关

架构

  1. 注册中心
  2. 服务提供者
  3. 服务消费者
  4. 剩下的就是其他东西,SPI之类的

有参考过dubbo和其他吗

有处理限流吗

还没实现

有哪些实现的注册中心

目前只实现了zookeeper,但是完全可以使用nacos来实现,同时看见一个使用了etcd来实现的,但是时间关系,就没实现

工具有落地到哪个项目吗

目前在写一个微服务项目,后续可能会使用他来替换掉OpenFeign

Token过期如何处理的

使用Redis的自动过期。。。

每次访问续写一次,退出登录删除token

Redis集群和哨兵的区别

集群是数据分片,目的是高可用性

哨兵是监控主节点和从节点,不存储数据,故障转移时发起投票之类的

大模型的API调用了哪些

答:调用了图片识别相关的

使用的什么进行项目管理

gitea

git rebase命令了解吗

打包相关

docker-compose,为什么没有使用Jenkins之类的。。服务器太烂了

问课结束了吗,毕业论文啥时候开始,目前在哪,何时过来

老问题了,直接 结束了,大四,在学校,马上过来

反问:

  1. 业务相关
相关推荐
兆子龙1 小时前
深入 ahooks 3.0 useRequest 源码:插件化架构的精妙设计
javascript·面试
maplewen.3 小时前
C++11 返回值优化
开发语言·c++·面试
苏荷水3 小时前
万字总结LeetCode100(持续更新...)
java·算法·leetcode·职场和发展
UrbanJazzerati3 小时前
从零到一:用Python Tkinter打造专业的文件行删除工具(一)
后端·面试
不想秃头的程序员5 小时前
Vue3 子传父全解析:从基础用法到实战避坑
前端·vue.js·面试
TracyCoder1235 小时前
LeetCode Hot100(50/100)——153. 寻找旋转排序数组中的最小值
算法·leetcode·职场和发展
2501_901147835 小时前
幂函数实现的优化与工程思考笔记
笔记·算法·面试·职场和发展·php
技术狂人1685 小时前
告别“复读机“AI:用Agent Skills打造你的专属编程副驾
人工智能·职场和发展·agent·skills
maplewen.5 小时前
C++ 多态原理深入理解
开发语言·c++·面试