掘金 后端 ( ) • 2024-06-15 15:47

这是一位读者参加武汉招银云创社招的面试记录,全程被吊打,共 47min,结果也如预想那样没有通过。

读者情况:社招,三年经验。

下面是正文。

社招,面试了武汉的招银云创 ,一共 47min 的技术拷打,堪称八股盛宴,难度有点大,感觉全程被吊打。

不是?现在强度这么大的嘛?

下面分享一下面试被拷打的一些技术问题。

  1. 如何保证你的流程引擎和业务代码解耦?用到了哪些架构设计?或者说设计模式?抽象哪些业务功能出来
  2. 流程审批完之后一般调方法 A,现在想调用方法 B 或者其他的 n 个方法,怎么设计这种需求?(设计模式或者动态注入方面去说)答了策略模式,面试官说不够解耦(后面又说责任链模式)。ps:这里其实考察的是观察者模式,当时没有想到。
  3. 聊一聊 SpringCloud 的 Eureka,Eureka 服务探活。sorry,不知道呀
  4. 说下代理模式,什么场景下使用代理模式,业务层面怎么使用的?(不让说 Spring 框架下使用的 AOP、声明式事务的代理模式)
  5. 索引的原理,可以根据版本来说下,不同的版本区别还是挺大的。(头一次听说,不知道是不是问自适应哈希索引,但这个我只是了解过,背的不熟,也不敢说)
  6. 索引的类型,索引怎么进行检索的
  7. 联合索引失效的场景?a,b,c 联合索引 b=null, a=xx and b=xx or c=xx 会生效吗?
  8. 说一说 clone 方法,clone 原理是啥,为什么是浅拷贝?( 只知道是浅拷贝,原理不清楚)
  9. 为什么 Redis 是单线程支持高并发
  10. 千万级别的数据表,查询效率很慢,有什么优化方法?
  11. 分库分表你怎么设计?你应该是没有做过分库分表是吧?(回答的非常八股,被看出来了)
  12. 数据库的 explain 说下,explain 有哪些字段,分别什么含义,重点关注哪些字段?(面试官补充说 rows 也很重要,后面百度也是说很重要,rows 显示 MYSQL 执行查询的行数,数值越大越不好,不理解那我数据量多,rows 不就越大吗)
  13. 说下 ConcurrentHashMap,那你有遇到 ConcurrentHashMap 线程不安全的场景吗?或者哪个 api 线程不安全?(原来 ConcurrentHashMap 的线程安全指的是,它的每个方法单独调用(即原子操作)都是线程安全的,但是代码总体的互斥性并不受控制)晕了,那 ConcurrentHashMap 线程安全有啥用?
  14. 线程的几种状态
  15. 什么 api 让线程从就绪变成运行状态?(答成 start 了,start 是初始变成就绪,面试官说是 run 方法,感觉说错了,线程状态变化的图上写的是系统调度执行 RUN,不是 run 方法)
  16. 什么 api 让线程从运行变成阻塞状态?
  17. 唤醒线程呢?notify 和 notifyAll 的区别?
  18. sleep 和 wait 的区别?start 和 run 的区别?
  19. 双向链表有哪些类?(说了 linkedHashMap,面试官说是单向的,怀疑他是不是听错了,AQS 也有使用,但是不知道当时是不是面晕了没有说)
  20. 那你有哪些精通的技术栈?Spring 没啥好聊的,他就是一个框架。(我精通个锤子 🔨,只能说 Spring,SpringBoot 熟悉)
  21. SpringBoot 相对于 Spring 有哪些区别?
  22. Spring 的事务
  23. 事务失效的场景
  24. orm 框架,说下 Mybatis 的缓存。(不懂)
  25. spring-core 的核心组件 (没看过)
  26. MVCC 说下

上述绝大部分面试问题的参考答案都可以在下面这两份资料中找到(这段为 Guide 补充):

  • JavaGuide :Java 学习 + 面试指南。笔者维护了六年,累计收获了 144k star,持续更新完善,内容全面,文章质量非常高。
  • 《Java 面试指北》:我星球里的一个专栏,和 JavaGuide 的内容互补。

反问: 面试官对我的评价。

面试官反馈项目是内部的项目,在大数据量和分布式的场景有所欠缺,没有使用过分库分表、MySQL 集群、Redis 集群,这些都是很常见的操作了,技术功力不深厚。

ps: 分库分表和集群这些事常见操作?绝大部分人都接触不到这些场景好吧?

因为面试问了八股之外的东西或者觉得是很少问到的八股,没见过,没有复习,所以问的时候有很多不会的。另外有些细枝末节的地方也是背了忘,还应该加强记忆。

果然,第二天一大早收到了感谢信。