阿里四面Java后台开发岗:TCP+Netty+Hashmap+锁+红黑树复盘总结

前言

不想进大厂的程序员不是好程序员,鄙人也行有梦想的,这次我想阿里投递简历,终于收到了面试邀请,大厂的面试就是不一样,不和多说没用的,全程都是满满的知识点,菜鸡真的会被刷掉的,不想很多小公司,开口闭口就是未来的发展前途三轮技术面和一轮HR面,感觉我的表现还不错,反正还没有收到offer,分享下我的面试题吧,也记得不是很全,保护自己一手希望可以得到offer,P6我就满足了,在面几次都行开始分享了啊~

阿里一面:

TCP三次握手和四次握手?为什么三次握手,TCP 的ack seq是ack次数还是ack字节数?RST报文指的是什么报文?

http2的原理,https的原理,描述一下TSL的握手过程。

JVM线上参数设置,为什么这么设置?能讲讲jdk的分代搜集器原理吗?

volatile 关键字是如何防止指令重排的,synchronized能防止指令重排吗?

那进一步说说synchronized的锁消除与锁优化,自旋锁轻量级锁与重量级锁分别都是什么?

Innodb引擎一个数据页的大小为什么是16KB?20个mysql字段,都是varchar(10),1000w数据情况下b+树高度是多少?

结合WAL机制和回滚段说一说innodb 事务引擎的MVCC原理?

Select/Poll/Epoll 三种系统IO的区别?

Zookeeper做服务的注册中心,如果服务规模大于1000,会发生羊群效应网络风暴,怎么优化?

说一说你理解的countdownlatch?countdownlatch的底层原理?AQS又是什么?

线程池的各个参数,ThreadLocal?怎么优化?知道FastThreadLocal吗?

装饰者模式和代理模式挺像的,他们有什么区别?

你们用了SpringCloud,能从源码角度讲一讲Eureka的底层架构与设计原理吗?

13亿用户量的微博plus,如何设计点赞系统才能保证高性能?

用户画像系统,用户标签一直在增加,怎么设计表结构?

手写一下线段树代码。

阿里二面:

Hashmap底层原理

讲讲Netty的内存池算法和对象池算法,什么情况下会内存泄漏?

你刚才说Netty使用PooledUnsafeDirectByteBuf。Unsafe是什么,java里能直接new吗?

分布式事务两阶段提交如果第二阶段超时了怎么办?

嗯,那tcc的原理能讲一下吗?新出来的Seata 有调研过吗?

分别从NIO层面和netty层面讲解一下零拷贝。

给你一个oom.hprof,让分析内存泄漏可能的原因。

微服务,怎么拆的,为什么要那么拆,

老生常谈题目,mysql和redis的数据如何保证一致性,就是 cache asigned pattern.

老生常谈题目:如果保证redis的内存里全都是最热的数据,考察的是redis的内存淘汰策略。LRU。

redis说到了LRU,让手写一个lru算法。(用LinkedHashMap实现)

mysql为什么用b+树,和b树区别?

mysql 从二叉查找树说到红黑树说到多叉树再到b到b+,最后让手写了一个二叉查找树的中序遍历。

阿里三面:

你们用了rocketmq,说一说rocketmq是如何保证消息写入的高性能,如何保证消息不丢失的?

spring的设计思想。

cpa定理,redis是cp的还是ap的?为什么?zookeeper是cp的还是ap的,为什么?

说一说你理解的面向过程,面向对象和函数式编程

你的技术职业规划。

阿里HR:

你的优点。

多久能入职。

薪资问题。25k给不了,问20k行不行,平时多申请点补助。

对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

整理的这些架构技术希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

在这里,我将我收藏许久的Java架构进阶学习资料(文档+笔记+视频+面试必备)分享出来,帮助大家在接下来的面试中能成功进入自己期望中理想的公司。

文章篇幅限制,需要高清完整资料的朋友私信我【面试】即可获取免费资料!!

阿里面试题:

蚂蚁金服面试题

Java程序员技术面试必备知识

Java程序员技术面试必备知识

Java核心知识点整理

Java核心知识点整理

算法刷题LeetCode中文版

算法刷题LeetCode中文版

阿里巴巴Java开发手册

阿里巴巴Java开发手册

BAT面试的20道高频数据库问题解析

BAT面试的20道高频数据库问题解析

Java虚拟机与并发编程

Java虚拟机与并发编程

高效程序员的45个习惯:敏捷开发修炼之道

高效程序员的45个习惯:敏捷开发修炼之道

23种设计模式知识要点

23种设计模式知识要点

以上的这些学习资料都是免费分享的!希望大家都能够拿到自己期望的offer,好圆了自己的大厂梦!

获取方式:评论+转发,关注我,私信回复【资料】即可获取以上所有资料!

全部评论

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务