只需一篇文章吃透 Java 多线程技术,那些 BAT 大厂的 Java 面试官到底在想些什么

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

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

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

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

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

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

正文

  1. Redis 的 list 是怎么实现的,我说用 ziplist+quicklist 实现的,ziplist 压缩空间,quicklist 实现链表。

  2. sortedset 怎么实现的,使用 dict+skiplist 实现的,问我 skiplist 的数据结构,大概说了下是个实现简单的快速查询结构。

  3. 了解什么消息队列,rmq 和 kafka,没细问

  4. 写题时间到。第一题:写一个程序遍历。第二题:写一个插入树节点到一颗排序树的插入方法,使用递归方式找到插入位置即可。第三题:一个有向图用邻接矩阵表示,并且是有权图,现在问怎么判断图中有没有环。第四题:一个二叉树,找到二叉树中最长的一条路径。

三面:

  1. 三面的面试官真的高冷啊,不苟言笑就算了,我问他他都不爱搭理的,搞得我内心慌得一比,感觉凉凉。

  2. 介绍一下项目

  3. 你谈到的并发技术,chm 和 countdownlatch 怎么使用的

  4. 为什么要这么处理,使用线程池是不是也可以。我说也可以

  5. 操作系统的进程通信方式,僵尸进程和孤儿进程是什么,如何避免僵尸进程,我说让父进程显示通知,那父进程怎么知道子进程结束了,答不会。

  6. 计算机网络 TCP 和 UDP 有什么区别,为什么迅雷下载是基于 UDP 的,我说 FTP 是基于 TCP,而迅雷是 p2p 不需要 TCP 那么可靠的传输保证,他说不对。

  7. 我说是不是因为要建立连接,开销比较大,他说不对。

  8. 我说 p2p 的发送节点很多,所以不是那么需要各种传输保证,他说不对。

  9. 我说 TCP 会自动分包而 TCP 可以自己定义数据长度。。他还是说不对。

  10. 最后他说算了。我们问下一个吧。操作系统的死锁必要条件,如何避免死锁。写一个 LRU 的缓存,需要完成超时淘汰和 LRU 淘汰。我说用 lhm 行不行,他说用 linkedlist 和 hashmap 可以。于是我就写了 put 和 get 函数,进行了队头队尾操作。他说 get 复杂度会不会太高,我瞎掰了半天没找到办法,他说那就这样吧,今天面试到这。

  11. 过期淘汰的处理我还没写呢,你就说结束了,感觉凉了啊,我说我要不要把剩下逻辑说完,他说不用,心凉了一大截~

然后就是 HR 小姐姐让我等结果了。感觉不对,应该是凉凉~~~

四面阿里

====

有了前边头条面试的经历,自己也恶补了一些面试常见问题,这次决定试试阿里,毕竟面试不通过不亏,侥幸通过血赚啊。

面试岗位是研发工程师,直接找蚂蚁金服的大佬进行内推,参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头 offer。

一面:

  1. 自我介绍。

  2. 项目中做了什么,觉得难点在哪里。

  3. Java 的线程池说一下,各个参数的作用,如何进行的。

  4. Redis 讲一下

  5. 分布式系统的全局 id 如何实现。用 zookeeper 如何实现的呢,机器号+时间戳即可。

  6. 分布式锁的方案,redis 和 zookeeper 哪个好,如果是集群部署,高并发情况下哪个性能更好。

  7. kafka 了解么,了解哪些消息队列。

  8. 想做业务还是研究。

  9. 然后出了一道题,linux 的访问权限是 rwx 格式的。使用一个类支持访问权限的增删改查,并且注意使用的数据格式以及方法效率,规范。给了一个多小时写题。耗时将近 30 分钟。

二面:

  1. 介绍你做的项目和其中的难点。

  2. 上次面试官问的问题,反射的作用是什么。

  3. 数据仓库,多线程和并发工具等。

  4. 私有云,docker 和 k8s 等。

  5. 了解哪些中间件,dubbo,rocketmq,mycat 等。

  6. dubbo 中的 rpc 如何实现。自己实现 rpc 应该怎么做 dubbo 的服务注册与发现。

  7. 问了些排序算法耗时将近 30 分钟。

三面:

三面不是面试,而是笔试,耗时三个小时,考的是 Java 核心的基础。但是好像不能透题,就不说了。都挺有难度的。

大概说一下就是有几个考点,Java 并发的知识点,集合类,线程池,多线程、高并发之间的通信等。

HR 面:

最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

image

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!

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

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

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-TBuTronR-1713457055426)]

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值