已拿阿里Java后端岗offer,分享面试(详细到各个环节)感觉进军阿里没有很难!

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

答:RDB和AOF。RDB指定时间间隔内将内存中的数据集快照写入磁盘,整个Redis数据库只包含一个文件,方便进行备份。AOF以日志的形式记录服务器所处理的每一个写、删除操作,支持每秒同步、每修改同步,每秒同步效率较高。

Redis的命令用考虑并发吗?

不需要。

为什么?

Redis所有单个命令都是原子性的。

为什么具有原子性?

Redis是单线程的。 每个命令是一个任务,这些任务都会由Redis的线程去负责执行,任务要么执行成功,要么执行失败。

选择一个项目说说?

答:特色1:单点登录:不需跨域的时候,redis存储共享信息,拦截后查cookie是否含token,用jwt解密查看用户名id等信息。登录和注册时,根据表单提交的信息,生成相应的token,用jwt给token加密并存入cookie。需跨域时:用urll带着参数token去跨域。

答:特色2:配置热部署:不需要重启服务,就让配置信息实时生效,例如常变化的配置(登录页、过期时间)。config.properties中放变化属性,config类中设置refreshconfig()方法,用资源加载器读取config.properties文件,并转为输入流,加载进新config.properties文件。

问:若有很多台机器同时工作,怎么保证每台机器的配置文件都重加载?

回答不上,面试官提醒用消息队列。

由于项目经验不足,项目这里回答的不好,所以后面的几面几乎不问项目了,都在问基础和场景,大厂面试就是不死抓短板,而是发掘优点,只要优点足够好就能通关。每面结束让我提问,我都会问我最大的缺点是什么,面试官的建议我回去会继续改进。

二面主管基础面:

HashMap线程不安全的体现?

扩容会造成死循环。

怎样解决这个问题?

1.7用头插法,1.8改为尾插法。

这个改变有什么作用?

JDK1.8是因为加入了红黑树使用尾插法,能避免出现逆序且链表死循环的问题(向右找地方查,向左get)。如果两个线程都发现HashMap需要扩容,它们会同时帮助扩容。 因为头插法,存储在链表中的元素的次序会反过来,如果条件竞争发送了,会出现环形链表。 之后当我们get(key)操作时,就有可能发生死循环。

字节码文件中都有哪些结构?

Class文件中有魔数、主版本号+副版本号、常量池、访问标志、索引、字段表集合、方法集合、方法计数器。

了解spring 吗?例举一下Spring 框架用到的设计模式?

1、单例模式:spring创建的bean默认为singleton,对于类的实例提供一个访问它的全局访问点。2、工厂模式:BeanFactory功能(管理所有bean生命周期)。3、代理模式:aop中有体现,Jdk/Cglib。

三面交叉面场景面:

微信抢红包算法,保证随机性?

答:设共Y元,K人。每个人至少分到0.01元,剩(Y-K*0.01)元。把剩下的钱用(K-1)把刀切成K份----在剩余钱中随机取一个范围内的数,即为刀的位置,刀-剩余钱初始值=一份红包

抢红包如何保证每份红包有最多最少范围?

答:这个因为之后会更新一篇关于微信红包算法以及带上下限的红包算法里面会讲到

四面交叉面综合面:

面试官是个在美国工作的阿里云大佬,全程和蔼地让我把简历上的几个项目,详细描述特色功能、难点和亮点。这里注意尽量把业务和源码底层联系到一起,例如spring中的一些aop等。

1、app开发时间用了两个月,开发周期较长,是几个人一起开发的?答:一个人。2、在这个项目中有没有人在带我,在哪里帮助了我?答:有一个同事带我,在很多需要经验判断的地方帮助我,例如栏目用ajax穿***行增加删除,两个ajax动作不同步导致经常出错,同事让我把ajax同步,加了代码{ajax:false;}。还有我做了图片瀑布流,但经常卡顿,同事教我进行调试查看每个js文件用的时间,把https://这样外来的引用下载,变为本地引用就不卡了。

当然大家肯定会说只问了这么点嘛这么简单,肯定不止这些,其实主要是告诉大家不要把面试官想的那么可怕,你不是去和他battle,面试前做好准备,心态很重要

去面试之前其实我也准备了蛮久,包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发,设计模式,MySQL等知识点解析,各种面试真题一直刷,如果大家有需要,这里可以分享一波哦 关注后点这里

一:线程、数据库、算法、分布式、微服务、框架、Spring相关知识


image.png

最后

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。

image

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)**
[外链图片转存中…(img-h6BFP4fv-1713467563602)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值