熊大同学的面试回忆录(2

接着问了为什么没有用Eureka,他们有什么区别吗?

答:Nacos可能更有先进性一些,自带实现配置中心,Eureka的话,需要整合SpringCloud Config,同时Nacos支持根据不同的业务、环境进行分组管理,所以在选型上有限考虑了Nacos。

PS:附Eureka和Nacos的功能对比图

4.那你知道Nacos的实现原理吗?

没答出来。

回答了:平时业务开发比较多,比较熟悉使用,对底层原理没有做深入的了解。

ps:Nacos原理分析,可以看这里:

【282期】面试官:你能说说 Nacos 的实现原理吗?

5.你觉得SpringBoot和Spring的区别是什么?

答:SpringBoot开发中简化了很多XML的配置,引入自动配置的概念,做到零配置开箱即用。

还有就是内置了容器,不需要配置Tomcat,可以直接打包Jar运行。

接着问了SpringBoot的启动原理

答:通过@SpringBootApplication注解启动初始化模块,加载基本的环境变量、资源、构造器等,配置信息等;根据文件中配置的 Jar 包去扫描并加载项目所依赖的 Jar 包;@SpringBootApplication注解包含@ComponentScan注解,可以进行组件扫描,把扫描到的Bean注入到注入 Spring Context 中,完成SpringBoot的启动!

PS:这个问题回答的很虚,面试之前其实看过SpringBoot启动原理的文章,但是没有自己去提炼一下如何回答(没想到就问了,心里那个悔啊),不过面试官没有说什么,回答完后直接问了另一个问题。

6.Spring中用了哪些设计模式?

答:工厂模式、代理模式、单例模式。

我是个菜鸡,平时设计模式其实研究不多,偏重业务开发。答完后面试官追问还有呢?我回答暂时想不到了!!!

接着问,具体说说哪里用到了?

  • 工厂模式在BeanFactory以及ApplicationContext创建中都有用到;

  • 代理模式在Aop实现中用到了JDK的动态代理;

  • 单例模式在创建bean的时候,默认单例;

面试后的总结:设计模式上肯定失分了,其实也看过这类文章,还有收藏,只是没有深入去阅读,总结,导致面试回答时候,能想起一点,但是总是回答不全或者回答不到点子上,以后学习的习惯要改,不能草草看过就算,要么不看,看过就记录总结~~

7.熟悉Linux操作系统吗?

答:熟悉,项目部署一直使用linux,基本的项目部署之类没有问题。

接着问说说常用的Linux命令

  • vim 打开文件修改内容

  • find 搜索文件

  • mkdir 创建目录

  • rm 删除目录或文件

  • kill 杀掉进程

  • cp 拷贝

等等,说了不到十个左右被打断,问了:

  • 查看与某台机子的连接情况:ping ip

  • 重启网络:service network restart

让自己说了一通常用的命令之后,只问了这两个。

8.Redis熟悉吗?用得多吗?

答:项目中一直在用,还算熟悉。

说说Redis的常用命令吧

  • info:提供服务器的信息和统计;

  • shundown:将数据同步保存到磁盘,然后关闭服务;

  • get(key):返回数据库中名称为key的string的value;

  • setnx(key, value):添加string,名称为key,值为value;

  • lindex(key, index):返回名称为key的list中index位置的元素;

简单说了几个,接着问了 什么是缓存穿透、缓存雪崩、缓存击穿?

缓存穿透、缓存雪崩、缓存击穿的解决方法?

我感觉这个回答的还行,答案不罗列了,参考:

PS:主要是看过,也理解了这部分,其实这个在之前项目中还真没实际处理过~~~

9.Excel数据的导入导出处理过吗

答:处理过,使用了POI做Excel的导入导出。

接着问导出数据量很大,会有什么问题

答:会导致内存溢出。

你们怎么处理的?

(这个基本没答上来,依稀记得看过公众号相关文章,但是忘记的死死的,好想说我去找个文章,拷贝一下人家处理的代码,这样子解决。)

答:之前项目中,导出没有遇到数据量特别多的场景,没有这方面的处理经验。

10.有没有对项目做过优化,说说SQL方面你们一般会做哪些优化处理

答:

  • 使用连接(JOIN)来代替子查询;

  • 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引;

  • 用EXISTS替代IN、用NOT EXISTS替代NOT IN;

  • 避免在索引列上使用计算;

  • 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描;

  • 尽量避免3条以上的Join查询;

接着问,很多次说到索引,是不是添加的索引越多越好?

答:不是。

  • 表记录太少

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结:绘上一张Kakfa架构思维大纲脑图(xmind)

image

其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?

若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理

梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。

  • Kafka入门

  • 为什么选择Kafka

  • Kafka的安装、管理和配置

  • Kafka的集群

  • 第一个Kafka程序

  • Kafka的生产者

  • Kafka的消费者

  • 深入理解Kafka

  • 可靠的数据传递

  • Spring和Kafka的整合

  • SpringBoot和Kafka的整合

  • Kafka实战之削峰填谷

  • 数据管道和流式处理(了解即可)

image

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 深入理解Kafka

  • 可靠的数据传递

  • Spring和Kafka的整合

  • SpringBoot和Kafka的整合

  • Kafka实战之削峰填谷

  • 数据管道和流式处理(了解即可)

[外链图片转存中…(img-qyuxb88t-1713752700020)]

[外链图片转存中…(img-gV0siFDV-1713752700020)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值