阿里巴巴java研发工程师面试经历分享

    本人近期经历了阿里巴巴的面试,也接触了不同的面试官,说实话不同的面试官的面试风格是很不相同的,接下来就把自己在面试中被问到的题目描述一下:

首先,一面。经过多次面试后总结到所有的面试开头都会让你进行一个简单的自我介绍。我认为这个自我介绍大家一定要精心准备一下,在自我介绍的过程中要向面试官讲明自己的优势,引导面试官去问一些你认为自己掌握的比较好的东西。一面中面试官首先问了一下我的项目相关的东西,首先会让你简单说一下,然后会问一些他们比较感兴趣的一些技术,由于我的项目里面写到了使用多线程的技术,而且这是面试Java工程师最常被问到的东西,面试官就问了多线程的实现方式,并且出了一道题目,问现在阿里要给一千万个用户发邮件,你觉得应该如何采用多线程的方式实现。并且问道了java虚拟机是如何实现线程池对各个线程的管理的,需要存储线程的哪些信息。

       接着,就问了一些java基础知识,大都是一些在网上就经常看到的,例如hashmap和hashtable的区别,内部是如何存储的。并问了一道题目,hashtable由于同步控制,用多线程进行处理的时候效率没有那么高,该如何提高效率,这个就是应该从内部存储结构上考虑,因为是数组+链表的形式,因此,可以在哈希到相应的链表后再进行同步控制,提高效率。以及hashcode的实现机制,还有一些线程安全和不安全的线程集合的问题。接着就问了算法的支持。(1)如何找到一个二叉树中距离最远的两个节点。(2)如何判断两个链表是否相交。这个问题就是将这两个链表相连,判断是否有环,即可解决。(3)当只给你一个节点,它指向单链表中的任意一个点,不知道单链表的头和尾节点,只利用这个节点,如何删除这个节点。可以直接将这个节点与后一个节点进行交换值,然后删除后一个节点即可。最后 ,面试官问了我的职业规划。

       然后是二面,在二面中,面试官上来就说估计在半小时以内面试就可以结束,依然很专注java的基础知识、多线程、数据结构与算法等方面。问了java堆的分区,以及GC机制,多线程的知识,java中重载与重写的区别,其中还问了char和bype基本数据类型一般在什么情况下使用等。然后问了快速排序和堆排序的区别,还问了别的不太记得了,最后对我的整个面试进行了反馈,好吧,这个时候我就知道自己要跪了,就这样就结束了。

      整体来说面试官还是很重视你的基础知识的掌握程度。在基础知识上,不能只是了解,还是知道内部的实现机制,甚至熟记于心。有些面试官会很重视你的实践的,比如说你在做项目的过程中如何调优的以及java中那几个监视器的使用。面试官的问题很广泛,自己在面试的过程中总会觉得自己准备的不够充分,总而言之就是自己能力还是不行,还是有很大的提升空间。

    希望自己的分享对接下来找工作的同学有帮助哈!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值