阿里面经总结

阿里

面经1

  1. 简单介绍项目
  2. 知道哪些数据结构以及他们的特点
  3. 链表增删快,那如何提高其查询效率,有没有什么想法?
  4. B+树了解吗?B+树如何范围查询?B+树退化的极端情况是什么?
  5. 跳表了解吗?
  6. 大顶堆、小顶堆了解吗?
  7. 实现长地址请求到服务端,然后服务端重定向短地址给客户端,如何实现长短地址的互相映射?
  8. 那我现在有10份数据,有1000个线程来争抢,你要怎么处理?
  9. 分布式是什么?为什么要分布式?分布式又会有哪些问题?分布式系统是如何实现事物的?
  10. Redis集群了解吗?如何处理宕机的情况?Redis的同步策略?
  11. LRU算法了解吗?你会如何实现它?这个算法可以应用在哪些场景下?
  12. TCP为什么是三次握手?两次行不行?多次行不行?
  13. TCP的安全性是如何实现的?两台服务器之间可以同时建立多条TCP链接吗?怎么实现的?
  14. 客服端输入一个网址后,是如何拿到客服想要的数据的,是怎样在网络中传输的?
  15. cookie和session
  16. java有哪些锁?共享锁是什么?CAS?乐观锁和悲观锁?synchronied的底层原理?锁升级?死锁怎么形成的?如何破解死锁?

面经2

  1. Java容器:List,Set,Map
  2. Map的遍历方式
  3. HashMap扩容为什么是扩为两倍?
  4. Java线程同步机制(信号量,闭锁,栅栏)
  5. 对volatile的理解:常用于状态标记
  6. 八种基本数据类型的大小以及他们的封装类(顺带了解自动拆箱与装箱)
  7. 线程阻塞几种情况?如何自己实现阻塞队列?
  8. Java垃圾回收。可达性分析->引用级别->二次标记(finalize方法)->垃圾收集 算法(4个)->回收策略(3个)->垃圾收集器(GMS、G1)。
  9. java内存模型
  10. TCP/IP的理解
  11. 进程和线程的区别
  12. http状态码含义
  13. ThreadLocal(线程本地变量),如何实现一个本地缓存
  14. JVM内存区哪里会出现溢出?
  15. 双亲委派模型的理解,怎样将两个全路径相同的类加载到内存中?
  16. CMS收集器和G1收集器
  17. TCP流量控制和拥塞控制
  18. 服务器处理一个http请求的过程
  19. 例举几个Mysql优化手段
  20. 数据库死锁定义,怎样避免死锁
  21. spring的aop是什么?如何实现的
  22. 面向对象的设计原则
  23. 策略模式的实现
  24. 操作系统的内存管理的页面淘汰 算法 ,介绍下LRU(最近最少使用算法 )
  25. B+树的特点与优势

面经3

  • 自我介绍,说简历里没有的东西
  • 说几个你最近在看的技术(MySQL,多线程)
  • 口述了一个统计数据的场景题
  • 如果这个统计数据场景不用MySQL,而是用Java来实现,怎么做
  • 如果数据量过大,内存放不下呢
  • 用面向对象的思想解决上面提出的问题,创建出父类,子类,方法,说一下思路
  • 下一个场景,口述了一个登录场景,同学用线程池做登录校验,会有什么问题
  • 如何解决这些问题
  • 你给出的方案弊端在哪里,还有哪些方案

面经4

  • 谈谈类加载机制。
  • hashmap和concurenthashmap
  • 16g机器,让你分配jvm内存怎么分配。
  • 机器慢了怎么排查。
  • 谈谈consul和zookeeper,还有服务发现机制。
  • 详细说明raft协议。
  • 谈谈consul和zookeeper区别。
  • 服务注册的时候发现没有注册成功会是什么原因。
  • 讲讲你认为的rpc和service mesh之间的关系。

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~

********

如果访问不了Github,可以访问*******。

*******

#java#
全部评论
所以b+树退化的极端情况是啥呀,大佬
点赞 回复 分享
发布于 2023-07-25 01:24 广东

相关推荐

最终还是婉拒了小红书的offer,厚着脸皮回了字节。其实这次字节不管是组内的氛围、HR的沟通体验,都比之前好太多,开的薪资也还算过得去,这些都是让我下定决心的原因之一。但最核心的,还是抵不住对Agent的兴趣,选择了Ai Coding这么一个方向。因为很多大佬讲过,在未来比较火的还是属于那些更加垂类的Agent,而Ai Coding恰好是Coding Agent这么一个领域,本质上还是程序员群体和泛程序员群体这个圈子的。目前也已经在提前实习,也是全栈这么一个岗位。就像最近阿里P10针对前端后端等等不再那么区分,确实在Agent方向不太区分这个。尤其是我们自己做AI Coding的内容,基本上90%左右的内容都是AI生成的,AI代码仓库贡献率也是我们的指标之一。有人说他不好用,那肯定是用的姿态不太对。基本上用对Skill、Rules 加上比较好的大模型基本都能Cover你的大部分需求,更别说Claude、Cursor这种目前看来Top水准的Coding工具了(叠甲:起码在我看来是这样)。所以不太区分的主要原因,还是针对一些例如Claude Code、Cursor、Trae、Codex、CC等一大堆,他们有很多新的概念和架构提出,我们往往需要快速验证(MVP版本)来看效果。而全栈就是这么快速验证的一个手段,加上Ai Coding的辅助,目前看起来问题不大(仅仅针对Agent而言)。而且Coding的产品形态往往是一个Plugin、Cli之类的,本质还是属于大前端领域。不过针对业务后端来看,区分还是有必要的。大家很多人也说Agent不就是Prompt提示词工程么?是的没错,本质上还是提示词。不过现在也衍生出一个新的Context Eneering,抽象成一种架构思想(类比框架、或者你们业务架构,参考商品有商品发布架构来提效)。本质还是提示词,但是就是能否最大化利用整个上下文窗口来提升效果,这个还是有很多探索空间和玩法的,例如Cursor的思想:上下文万物皆文件, CoWork之类的。后续也有一些Ralph Loop啥的,还有Coding里面的Coding Act姿态。这种才是比较核心的点,而不是你让AI生成的那提示词,然后调用了一下大模型那么简单;也不是dify、LangGraph搭建了一套workflow,从一个node走到另外一个node那么简单。Agent和WorkFLow还是两回事,大部分人也没能很好的区分这一点。不过很多人说AI泡沫啥啥啥的,我们ld也常把这句话挂在嘴边:“说AI泡沫还是太大了”诸如此类。我觉得在AI的时代,懂一点还是会好一点,所以润去字节了。目前的实习生活呢,除了修一些Tools的问题,还包括对比Claude、Cursor、Trae在某些源码实现思想上的点,看看能不能迁移过来,感觉还是比较有意思。不过目前组内还是主要Follow比较多,希望下一个阶段就做一些更有创新的事情哈哈。这就是一个牛马大学生的最终牧场,希望能好好的吧。说不定下次发的时候,正式AI泡沫结束,然后我又回归传统后端这么一个结局了。欢迎交流👏,有不对的🙅不要骂博主(浅薄的认知),可以私聊交流
聪明的芭乐等一个of...:佬可以推荐一些和aicoding相关的学习资料吗?最近特别想学习这个方向
点赞 评论 收藏
分享
评论
15
93
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务