杭州安恒信息面经

岗位:软件开发实习生(恒星计划) base:杭州

时间:2024.11.28

我的基本情况:本人大三,软件工程专业,Java 后端方向,前端也会一点Vue。

目前的技术栈:Java SE、SSM、SpringBoot 、RabbitMQ、Redis、MySQL(微服务那套跟着鱼皮的oj过了一遍)

这是我人生中第一次线上面试,自我介绍的时候都有一些卡顿,实在是太紧张了。(ps:当时找安静的教室准备面试,选择下午没课的机房,和面试官面到一半突然来人变得很吵,后面没面多久就结束真的无语😅)

回归到面试中:

面试官:先进行自我介绍一下

我:我叫xxxxx,来自xxxxx,是xxxxx专业大三的一名学生.......(然后就介绍了一下技术栈和简历上的项目)。

面试官:重写equals方法不重写hashCode方法会出现什么问题?

我:如果判断两个数如果hashCode相同则equals不一定相同,反而equals相同则hashCode则一定相同。如果不重写equals方法比较的是2个对象的内存地址,重写了equals方法比较的才是2个对象的值.....(如果我们不将我们重写equals方法的类放到HashSet等散列表中时则不会有什么影响,但如果放到我们的散列表中时我们的散列表则会优先比较HashCode所以可能会产生错误)ps:括号中的是我面试结束后去查的。


参考面试鸭:https://www.mianshiya.com/bank/1787463103423897602/question/1780933294574039042#heading-0

面试官:了解hashMap吗?介绍hashMap的原理?

我:HashMap是Java中常用的数据结构,用于存储键值对。hashMap的原理分为1.7之前和1.8之后。1.7的时候hashMap的数据结构是数组加链表的方式,在1.8之后加入了红黑树这种数据结构。HashMap的默认初始化容量是16,负载因子是0.75,当存储的元素个数超过12个时,hashMap会触发扩容机制。链表转换成红黑树前会进行判断,链表长度大于8数组长度大于64才会进行转换,如果链表长度大于8但是数组长度小于64也不会转换成红黑树,只会对数组容量进行扩容。1.8以后链表插入从头插法改为尾插法.......


参考面试鸭:https://www.mianshiya.com/question/1834107117591187457、https://www.mianshiya.com/question/1780933294775365634

面试官:了解MySQL中的like关键字吗?

我:like是MySQL中的模糊查询关键字,和%配合一起使用,%的位置不同会影响查询记录的不同。%在前:MySQL将会匹配以指定字符串结尾的所有字符串。%在后:MySQL将会匹配以指定字符串开头的所有字符串。%在中间:MySQL将会匹配包含指定字符串的所有字符串。


这道题我好像没有在面试鸭看到

参考csdn:https://blog.csdn.net/m0_54144956/article/details/131235125?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%BA%86%E8%A7%A3MySQL%E4%B8%AD%E7%9A%84like%E5%90%97&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-131235125.142^v100^pc_search_result_base4&spm=1018.2226.3001.4187

面试官:了解Mybatis框架吗?MyBatis的实现原理?

我:MyBatis是ORM框架......(ps:这道题是真不会,八股没复习过这个,只能硬着头皮编了一下)


参考面试鸭:https://www.mianshiya.com/question/1803351153858568193

面试官:Redis里面有一亿条数据,有十万条的数据,key开头是一样的,如何查找出来?

我:思考了一下给面试官回答不会。(内心:我靠场景题都来了,我这怎么办 流泪啊)

面试结束看面试鸭也没有答案(希望有知道的鱼友能给我解释一下)

面试官:Redisson的限流(限流算法)?

我:我使用的RateLimiter的限流组件,底层使用的令牌桶的限流算法......(我本来还准备介绍一下限流的其他算法但是太紧张了,当时怕讲不好就没有介绍)


参考面试鸭:https://www.mianshiya.com/question/1772196516732121090

面试官:为什么会出现死锁问题?如何解决?

我:死锁是2个线程相互持有对方想要的资源,线程无法执行下去,只能等待或者被外部程序干预。要避免死锁可以减少线程对资源的持有时间,及时的释放资源;一次把线程所需要的资源全部获取到,注意加锁的顺序,保证每个线程按照同样的顺序加锁。


参考面试鸭:https://www.mianshiya.com/question/1772868692149846018

面试官:SpringBoot Bean的作用域?

我:思考了一下给面试官回答不会。复习八股的时候没有复习到这个,只复习到Bean的生命周期


参考面试鸭:https://www.mianshiya.com/question/1780933295354179585

面试官:了解Restful API(介绍一下)?

我:了解的我简历中的第二个项目就是使用Restful 风格调用的Github API;‘Restful API是无状态的,每个请求都包含足够的信息,服务器不需要记录客户端的状态。客户端的每个请求都应该包含所有必要的信息.....


面试官:了解反射吗(介绍一下)?

我:java的反射是程序在运行时获取类的信息,反射可以在运行的时候动态的创建对象、调用方法等功能;一般在业务上不会用到反射框架中使用的比较多Spring就是使用反射来读取配置文件的。(当时内心狂喜,当时收到面试通知的时候就去牛客上找面经,看到好几篇面经都提到了反射专门去看了一下)


参考面试鸭:https://www.mianshiya.com/question/1776518648442130434

后面面试官就没有再问了,就进行的反问。

总结: 八股文复习的还不够每天还是要多抽时间看一下,面试的次数太少导致面试的时候太紧张了要放平心态。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
小样
下载 APP