三面阿里失败,幸获高人指点缺陷所在,奋战三个月成功入职字节

个人背景

我的个人背景非常简单,Java开发经验3年,学历普通,一本本科计算机专业,毕业后出来就一直在一家互联网公司Crud,在公司每天重复的工作对我的技术提升并没有什么帮助;

心思开始活泛想去追寻更具有挑战的工作,于是就开始海投简历,没曾想一个星期后居然收到了阿里巴巴是我面试邀请,由于来的有点突然,让我慌手慌脚的,结果可想而知,在三面的时候挂了(能坚持到三面其实还是比较满意的)

还好本人比较喜欢复盘,把面试问题能记得的都做了记录总结,大家先一起来看看吧。

阿里一面:

  1. 自我介绍
  2. 擅长哪方面的技术?
  3. Java有哪些锁种类?(乐观锁&悲观锁、可重入锁&Synchronize等)
  4. 比较重要的数据结构,如链表,队列,栈的基本理解及大致实现
  5. J.U.C下的常见类的使用。 ThreadPool的深入考察; BlockingQueue的使用
  6. Java内存分代模型,GC算法,JVM常见的启动参数; CMS算法的过程。
  7. volatile关键字有什么用(包括底层原理)
  8. 线程池的调优策略
  9. spring cloud的服务注册与发现是怎么设计的?
  10. 分布式系统的全局id如何实现
  11. 分布式锁的方案,redis和zookeeper哪个个好,如果是集群部署,高并发情况下哪个性能更好。

耗时将近50分钟

阿里二面:

  1. 参与的项目,选一个,技术难度在哪里?
  2. Collections.sort底层排序方式
  3. 负载均衡的原理
  4. 设计模式与重构,谈谈你对重构的理解
  5. 谈谈Redis相关的集群有哪些成熟方案?
  6. 再谈谈一致hash算法(redis)?
  7. 数据库索引,B+树的特性和建树过程。
  8. mysql相关的行锁,表锁;乐观锁,悲观锁
  9. 谈谈多线程和并发工具的使用
  10. 讲讲Redis的架构和组件
  11. Redis的数据一致性问题(分布式多节点环境 & 单机环境)
  12. docker容器

耗时将近40分钟

阿里三面(高级技术专家面):

  1. 高并发情况下,系统是如何支撑大量的请求的?
  2. 接着上面的问题,延伸到了中间件,kafka、redis、rocketmq、mycat等设计思路和适用场景等
  3. 最近上过上哪些技术站点; 最近在看哪些书。
  4. 工作和生活中遇见最大的挑战,怎么去克服?
  5. 未来有怎样的打算

耗时将近30分钟

自我反省

以上就是支付宝中三次面试全部问题了,事后回忆自己的基础确实不扎实暴露了很多弊端;

同时这次面试也让我冷静了下来,本就是准备试着投投简历,看看现在市场的需求,并没有做充足的准备;现在也知道接下来努力方向在哪里了;

幸好三面的时候加了阿里常老师的微信,事后常老师告诉我说:如果招聘名额再多一个的话我会入选的,相比来说我虽然差了点,但是差的也并不多;同时给我指引了学习方向,只要把这几个重点学习一遍,进大厂轻轻松松,没一点问题。现在分享给各位小伙伴;

九大核心:

  • 多线程高并发
  • JVM虚拟机
  • 设计模式
  • redis
  • zookeeper
  • mysql调优课程
  • netty
  • spring源码分析
  • 算法

之后我就开始了三个月的恶补之旅。。。

我这三个月学习资料与路径

下面所有资料都可以免费分享给各位,点击此处即可

多线程高并发:

image.png

JVM虚拟机:

image.png

设计模式:

设计模式是纯看马士兵老师的视频共9.5个G,视频讲解是真的香,会让你理解得更为透彻;

image

Redis:

image.png

Zookeeper:

image.png

Mysql:

image.png

Netty:

着重推荐这一本《跟着案例学Netty》;本书共19个案例,用案例详细透解Netty在实操中的实际问题;是一本快速帮人出坑的好书;

image.png

Spring源码分析:

对于Spring源码起初也是在看一些书籍,结果就是看完就忘,理解不深刻,之后发现看视频并跟着实操是最快的理解方式;Spring源码100集真是香到不能再香了;

image

算法:

关于算法我可要多说两句了,因为我能进入字节跳动全靠它。

这是一本程序员面试宝典!书中对IT名企图面试的类别转化的最优解进行了总结,并提供了相关的代码实现。针对当前程序员面试缺乏权威的总结总结这一痛点,这本书选择“将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失。”

本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联系,使知识的学习避免碎片化。书中将所有的面试题从难到易依次分为“将、校、尉、士” 四个档次,方便读者有针对性地选择“刷”题。本书所收录的所有面试题都给出了最优解讲解和代码实现,并且提供了一些普通解法和最优解法的运行时间对比,让读者真切地感受到最优解的魅力!

image

看过的面经:

image.png

上面所有资料都可以免费分享给各位,只需点击此处即可免费获取

幸运女神的再次眷顾

在恶补了三个月之后迎来了一次字节跳动的内推机会(谢谢马老师给的一次内推机会)

下面给大家再看看字节跳动问的面试题吧!(字节三面压力很大呀!)

一面

40min

  • Java内存模型
  • 两个进程的变量的地址相同,它们之间的写操作有相互的影响吗
  • 进程通信的方式
  • 关系型和非关系型数据库
  • 事务的特点
  • 原子性和一致性的实现原理(不会)
  • TCP和IP为什么要四次挥手
  • Close_ wait状态是什么(不会)
  • 甲乙轮流射箭,两个人命中靶子的概率都是0.5 ,谁先射中就赢,问甲获胜的概率(答案2/3 )
  • 算法题:给出一串数字,去掉k个数,问能形成的最小的数

二面

50min

  1. Java HashMap
  2. put 数据的过程
  3. 链表非常长会怎么样
  4. 什么情况下会转红黑树
  5. ConcurrentHashMap作的改进
  6. 常见的垃圾回收算法
  7. 引用计数的循环引|用的情况
  8. MySQL的联合索引
  9. 索引的底层结构
  10. 100个人坐座位,第一个人随机坐一个座位,后面的人优先坐自己的座位,只有当自己的座位被占了才会随机坐,问第100个人能坐到自己座位的概率(答案50% ,不会)
  11. 段页式管理下, CPU取数据要几次访存
  12. 算法题:给出一个数字串的排列,找出下一一个比当前数更大的一个排列(不能用next_ permutation )

三面

55min

  • 场景题:对HashMap rehash的时间进行优化

我第一次答了:事先预估capacity ,直接申请相应大小
我第二次答了:扩容时仅申请数组但不拷贝,当get命中时顺便拷贝过去
缺点是什么(可能会生成很多数组)
再优化

  • 手写单例模式(饿汉、DLC懒汉)
  • 算法题:给出一个转义后的字符串,问原串是什么? (写得并不太满意)

字节效率很高,面试完毕的第四天就已收到offer ,挺开心的哈。

最后祝各位看官都可以找到自己心仪的工作。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值