为了准备面试蚂蚁成功入职和很多的前辈要了学习导图和很多的面试文档,视频,就是想进自己心仪的公司。(文末有分享),大家一起进步。
一面是 上海的小哥打来的,3.12号中午确认的内推,下午就打来约时间了,也是唯一一个约时间的面试官。约的晚上八点。紧张的一比。
第一面是微信电话面试,本来是想直接电话面,但面试官说需要手写算法题,就改成微信电话面。
●自我介绍
●先了解一下Java基础吧,什么是内存泄漏和内存溢出? (溢出是指创建太多对象导致内存空间不足,泄漏是无用对象没有回收)
●JVM怎么判断对象是无用对象? (根搜索算法 ,从GC Root出发,对象没有引用,就判定为无用对象)
●根搜索算法中的根节点可以是哪些对象? (类对象,虚拟机栈的对象,常量引用的对象)
●重载和重写的区别? (重载发生在同个类,方法名相同,参数列表不同;重写是父子类之间的行为,方法名好参数列表都相同,方法体内的程序不同)
●重写有什么限制没有?
●Java有哪些同步 工具? (synchronized和Lock)
●这两者有什么区别?
●ArrayList和LinkedList的区别? (ArrayList基于数组, 搜索快,增删元素慢,LinkedList基于链表,增删快,搜索因为要遍历元素所以效率低)
●这两种集合哪个比较占内存? (看情况的,ArrayList如果有扩容并且元素没占满数组的话,浪费的内存空间也是比较多的,但-般情况下,LinkedList占用的内存会相对多点,因为每个元素都包含了指向前后节点的指针)
●说一下HashMap的底层结构(数组+链表,链表过长变成红黑树)
●HashMap为什么 线程不安全,1.7版本之前HashMap有什么问题(扩容时多线程操作可能会导致链表成环的出现,然后调用get方法会死循环)
●了解ConcurrentHashMap吗? 说一-下它为什么能线程安全(用了分段锁)
哪些方法需要锁住整个集合的? (读取size的时候 )
看你简历写着你了解RPC啊,那你说下RPC的整个过程? (从客户 端发起请求,到socket传输,然后服务端处理消息,以及怎么序列化之类的都大概讲了一下)
服务端获取客户端要调用的接口信息后,怎么找到对应的实现类的? (反射+注解吧,这里也不是很懂)
dubbo的负载均衡有几种算法? (随机,轮询,最少活跃请求数,一致性hash)
你说的最少活跃数算法是怎么回事? (服务提供 者有一一个计数器,记录当前同时请求个数,值越小说明该服务器负载越小,路由器会优先选择该服务器)
服务端怎么知道客户端要调用的算法的? (socket传递 消息过来的时候会把算法策略传递给服务端)
你用过redis做分布式锁是吧,你们是自己写的工具类吗? (不是, 我们用redission做分布式锁)
线程拿到key后是怎么保证不死锁的呢? (给这 个key加.上一个过期时间)
如果这个过期时间到了,但是业务程序还没处理完,该怎么办? (.额...可. 以在业务逻辑.上保证幂等性吧)
那如果多个业务都用到分布式锁的话,每个业务都要保证幂等性了,有没有更好的方法? (...思考 了下暂时没有头绪,面试官就说那先跳过吧。事后我了解到
redission本身是有个看门狗的监控线程的,如果检测到key被持有的话就会再次重至过期时间)
你那边有纸和笔吧,写一道算法,用两个栈模拟-一个队列的入队和出队。(因为之前复习的时候对这道题有印象,写的时候也比较快,大概是用了五分钟,然后就拍成图片发给了面试官,对方看完后表示没问题就结束了面试。)
第一面问的不算难,问题也都是偏基础之类的,虽然答得不算完美,但过程还是比较顺利的。几天之后,Bigo的hr就邀请我去他们公司参加现场面试。
最后把我认为比价有价值的学习导图、文档以及视频分享给大家,一起进步,也祝大家都能获得心仪的offer。
资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,完整学习路线图、文档、视频已经为大家整理好了,需要免费领取的朋友麻烦帮忙转发、转发、转发这篇文章(一定要转发哦),然后私信小编【666】。
Spring
Redis
Jvm
分布式
高并发
面试文档
阿里巴巴内部PPT全集及电子文档分享
学习视频全集
资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,完整学习路线图、文档、视频已经为大家整理好了,需要免费领取的朋友麻烦帮忙转发、转发、转发这篇文章(一定要转发哦),然后私信小编【666】。