各有不同,略。(话说回来,如果是不善言辞的同学,应该面试前给自我介绍打个底稿记一下,开局印象也重要,自我介绍都结结巴巴的,面试要凉一半!)
2.之前项目中使用过哪些框架,评价一下自己掌握的程度?
答:Spring,SpringMVC,SpringBoot,Mybatis,SpringCloud那一套,基本都使用过。
掌握程度的话,基本上在搭建及使用上没有问题,具备独立开发的能力,但是因为之前公司开发任务比较紧张,暂时对底层原理这些没有做太多的研究。
ps:如果你对Spring全家桶这套底层源码、实现原理等有较深的研究,感觉能经受得住提问,就不要这样自我评价了~
3.你们的微服务项目,服务注册、发现使用什么组件?
答:使用了Nacos。
接着问了为什么没有用Eureka,他们有什么区别吗?
答:Nacos可能更有先进性一些,自带实现配置中心,Eureka的话,需要整合SpringCloudConfig,同时Nacos支持根据不同的业务、环境进行分组管理,所以在选型上有限考虑了Nacos。
PS:附Eureka和Nacos的功能对比图
4.那你知道Nacos的实现原理吗?
没答出来。
回答了:平时业务开发比较多,比较熟悉使用,对底层原理没有做深入的了解。
ps:Nacos原理分析,可以看这里:
5.你觉得SpringBoot和Spring的区别是什么?
答:SpringBoot开发中简化了很多XML的配置,引入自动配置的概念,做到零配置开箱即用。
还有就是内置了容器,不需要配置Tomcat,可以直接打包Jar运行。
接着问了SpringBoot的启动原理
答:通过@SpringBootApplication注解启动初始化模块,加载基本的环境变量、资源、构造器等,配置信息等;根据文件中配置的Jar包去扫描并加载项目所依赖的Jar包;@SpringBootApplication注解包含@ComponentScan注解,可以进行组件扫描,把扫描到的Bean注入到注入SpringContext中,完成SpringBoot的启动!
6.Spring中用了哪些设计模式?
答:工厂模式、代理模式、单例模式。
我是个菜鸡,平时设计模式其实研究不多,偏重业务开发。答完后面试官追问还有呢?我回答暂时想不到了!!!
接着问,具体说说哪里用到了?
7.熟悉Linux操作系统吗?
答:熟悉,项目部署一直使用linux,基本的项目部署之类没有问题。
接着问说说常用的Linux命令
等等,说了不到十个左右被打断,问了:
让自己说了一通常用的命令之后,只问了这两个。
8.Redis熟悉吗?用得多吗?
答:项目中一直在用,还算熟悉。
说说Redis的常用命令吧
简单说了几个,接着问了什么是缓存穿透、缓存雪崩、缓存击穿?
缓存穿透、缓存雪崩、缓存击穿的解决方法?
我感觉这个回答的还行,答案不罗列了,参考:
PS:主要是看过,也理解了这部分,其实这个在之前项目中还真没实际处理过~~~
9.Excel数据的导入导出处理过吗
答:处理过,使用了POI做Excel的导入导出。
接着问导出数据量很大,会有什么问题
答:会导致内存溢出。
你们怎么处理的?
答:之前项目中,导出没有遇到数据量特别多的场景,没有这方面的处理经验。
10.有没有对项目做过优化,说说SQL方面你们一般会做哪些优化处理
答:
接着问,很多次说到索引,是不是添加的索引越多越好?
答:不是。
补充:
问了能手写红黑树吗?
答:数据结构那些不太熟,只会基本的排序那些,面试官一笑~
问了在之前项目中有没有踩过什么坑,怎么解决的?
最怕这类提问,想了一下说了事务注解失效的坑,导致生产数据出现问题,熬夜回退并作了数据矫正。
问了上家公司离职原因
回答不具有共性(本人是一线城市回二线),略。
问有什么想问的吗?
问了对我面试表现的评价。评价大意是项目实战经验不错,使用的技术方面都比较契合,项目上没有问题;然后Java基础方面不理想,知道使用但是对原理没有去做了解。
嗯,还算中肯~~
基本面试下来,回想起来的就这些问题了。但是提问顺序有出入,记性不好,只能回忆期这些了,希望对你有所帮助!