菜鸟网络暑期实习一面二面面经(终面已凉)
菜鸟网络暑期实习一面
时长55min
一面的体验感很好,面试官是个非常亲切的小哥,也会引导你回答问题,很健谈,聊了很多之后的发展之类的。
第一次面试本来是很紧张的,聊着聊着就感觉很好
个人情况:本人双非本科,没有实习经历,icpc区域赛靠队友混了块铜,一次省赛银、一次省赛铜,项目经验就一个很简单的curd。
一面首先个人介绍,比赛经历介绍,面试官问了一下acm赛制,在团队中如何合作
根据简历回答了,简单介绍了一下比赛经历。
项目介绍,讲了一下自己负责的部分,后端的开发、服务器部署,在项目中学到了什么。
讲一下HashMap底层原理
源码看过,记得比较深刻,回答了put()方法的流程,链表转红黑树的流程,讲了一下扩容。
ConcurrentHashMap和HashMap的区别
ConcurrentHashMap源码没有看过,回答了ConcurrentHashMap线程安全的,HashMap在多线程时可能会造成数据丢失,或者重复,在扩容时可能会造成死循环的情况
提到了多线程那就讲讲实现多线程的几种方式
简单问题,讲了继承了Thread类,实现Runnable接口,实现Callable接口,返回一个Future,线程池
死锁形成的条件,如何避免死锁
资源竞争,循环等待,这边理解的不深入,回答了合理分配资源,可以使用ReentryLock,面试官很好,跟我讲了好多
讲一下SpringMVC原理
回答了自己的理解,M是model,V是视图,C是Control,讲了DispatcherServlet,HandelMap找Controller,适配器解析url到合适的controller,这边凭印象的。
springboot的优点
讲到了Spring的优点,IoC、AOP介绍了一下,相对Spring,Springboot快速开发,减少了XML配置,开发更容易,结合项目讲了一点
Java类加载机制
我从javac编译开始,把类加载机制讲了一遍,装载、链接、初始化、双亲委派原则,这块挺熟了
垃圾回收(会多少讲多少)
除了垃圾回收器没讲,其他基本都说了
一面总体来说比较对位,还准备了挺多多线程、MySQL原理、Redis知识的,没有问到,非常的顺利,和面试官聊了很久,包括个人发展学习之类的。
菜鸟网络暑期实习二面
二面时长1h,笔试过后一天就约面试了,阿里效率非常的高。
这次面试官水平非常的高,对各种知识都非常的熟悉,学到了很多,Java基础太烂,面试官人很好,也很和蔼
首先自我介绍
这次介绍很简短,有点紧张,自我介绍完就开始正式问了
先问数据结构,介绍一下堆和栈的区别。
是大顶堆的那种吗?是的。
堆是一个满二叉树结构,讲了插入和删除的操作。栈先入后出的是栈,先进先出的是队列。这边紧张还说反了。
了解红黑树吗?
讲了红黑树的定义。5个特性,非完全平衡,是对黑色节点平衡,讲了一下插入和删除。这边比较复杂,就大概说了一下像AVL树一样,需要左旋右旋,红黑树是真的复杂
说一下常见排序算法
冒泡、选择、堆排序、桶排序、快排、归并排序
细说一下快排和堆排序
讲了两个算法的代码实现,面试官会根据你的回答题问。
说一下如何实现一个环。
讲了双端队列的实现,把建立过程说了一下。
手撕约瑟夫问题,回答大概也就是模拟一个双端队列,讲了一下代码实现。
因为开始都是用偏C++的回答,面试官就问了一个C++中垃圾回收的函数。结果我不知道,贼尴尬
解释了一下我们用的C++,只是用了C++STL库,非常的方便
后面开始问Java,没有看过Java Guide,很细很基础,没想到终面会这么问
jdk源码看过吗? (没有。。。
说一下,Java中抽象、组合、继承
回答的不是很好,就用自己理解说了下抽下和继承,后面面试官跟我讲了三个的类比,学到了。
继续问,继承有坏处吗? 回答应该有吧
举个例子,想了很久,说了个单继承Thread类,就不能继承其他类,用Runnable接口比较好。
面试官又指导我,正解是如果父类就有一些不好的方法,而且是private的,子类不可见,就无法更改。
唉。自己怎么没想到。。。
ArrayList扩容了解吗?
回答看过源码。ArrayList底层是数组来实现的,扩容是扩容1.5倍,使用Copy复制,讲了一下自己知道的。但是还不够深入
面试管反问:数组是对象吗?是吧
Array Copy和Clone的区别。emmm不太了解
Clone是Object超类中的方法吗? 不是吧。我记得Clone是个接口需要继承的
但是面试官说是。。。我不清楚是不是我记错了
说一下Object中的五个方法吧。随便说
讲了toString、wait、notify、hashCode,提醒下说了equals
反问equals下不实现toString和hashCode会怎样 不了解
了解设计模式吗?
我tmd智障回答了DDD什么的,还不太懂。结果设计模式是单例模式、工厂模式那些。
唉概念好模糊,丢人了
面到这基本就知道要凉了。Java基础确实不扎实,导致面试官都在问Java基础,准备了好久MySQL、Spring方面的都没问到。发现了很多短板吧,还是得补补的,面试官推荐了两本jdk源码和spring源码的书。java岗感觉还是得好好看看Java Guide的,之前都看不进去。
晚上就发现已经凉了,还是准备准备下周字节吧。