【面经】纷享销客暑期实习 Java后端
bg:24年5月,大二,零实习,项目非常水。
时间线:
- 24.5.21:校内宣讲+笔试
- 24.5.22:技术面试
- 24.5.29:offer
流程很简短,第一天晚上宣讲 + 笔试(纸笔做,不上机);第二天上午一轮技术面试,之后直接等offer
5.21 纷享销客笔试
八股 + 算法
- Java基础:泛型、可变不可变(StringBuffer)、 集合、类的继承和多态、覆写(@Override 什么情况不能覆写)
- SQL:巨他妈的多的sql CRUD语句编写、表的设计DDL、各种 JOIN 的区别、索引
- JVM:类加载机制、GC、Heap、Stack
- 正则表达式、计算机网络TCPUDP
算法非常简单:
- 二分查找1000个数要查找的次数,根据前序遍历和中序遍历看后序遍历
- 大题一个是用将字符串内所有字母倒序排列(但是非字符串位置不允许动);
- 另一个遍历数组,如果两数之和=目标值,则返回数组元素下标(限定Java语言)
最终成绩写了个50分 (满分100分),至少不是pass
5.22 纷享销客面试
因为是线下校招 + 日常实习 只有一轮线下技术面 面试流程大概20分钟
自我介绍
让我先后介绍简历里说过的以下业务技术理解:
OAuth2.0
(我从客户端的第三方登录角度解释的,由Authorized Code
讲到Access Token
,但是服务端的双token没有讲)Springboot
、SpringCloud
(我从Spring
设计模式到Spring MVC
再到微服务和分布式角度讲的,把容错性提高)Swagger-UI
(在线部署接口文档和测试角度讲的)MySQL
、达梦数据库、PgSQL
为什么要采用这样的技术选型,它们之间有什么区别(我没回答上来)
自己简历里没说过的:
- 知不知道数据库底层原理与设计?(不知道)
- 权限认证数据库如何设计?(因为我之前知道一点RBAC但是几乎没用过,所以就大概说了一下0级RBAC,用户、角色、权限是什么关系,面试官说我知道RBAC已经很不错了)
- 一道场景题:给数组1、2、…… 、100000,然后抽出5个数,之后打乱原数组顺序,如何通过打乱后数组顺序确定那5个数是什么?(我开了个
bool[100000]
,进行暴力遍历,问我bool
是多少字节我没答上来,面试官最后给我介绍了bitMap
这个类型)
反问环节:
- 希望做什么类型的业务:AI / 数据处理 / 框架开发……?(框架开发)
- 对我的表现提出建议?(没什么建议,说我的经历比一些大四的经历都要充分,问我这些技术是自己找的还是实验室的资源所提供?之后深挖一下底层的东西如JDK源码、Spring源码,然后多接触下高并发问题)
- 培养机制?(通过实战培养)
最近看到神哥的《神品八股》,上面提到了 StringBuffer、Java 集合、类的继承和多态等都在这里面出现过了,有需要的可以看下 [专栏链接]