8.29 菜鸟网络电话一面 凉经
突然袭击,毫无征兆。面试官说聊20来分钟。8.24笔试的,当时0 ac,应该是给个面试机会吧。感觉凉凉
- 自我介绍
- 你在项目中的角色是小组长,简要介绍下项目的业务以及分工。这个项目现在还有人用吗?
- 我们聊一下基础的东西,面向对象中多态和重载的联系是什么,解释一下(很基础的概念,当时感觉解释得并不好)
- 什么是序列化?(我讲了序列化和反序列化,感觉没有讲清楚)
- 你用的Java的版本是多少?1.8,那么你说下1.8版本的hashmap和1.7版本的hashmap的不同(常规题,从底层的数据结构来说)
- 为什么1.8版本要用红黑树?红黑树查找和插入的时间复杂度是多少?链表查找的时间复杂度是多少?为什么在节点个数小于6的时候要从红黑树转链表(我说的节点个数小于6的时候链表的查询性能优于红黑树),面试官问,还有吗?我想了下回答了节点个数不多的时候维护红黑树消耗的资源要多。还有吗?我只想出来这么多了。
- 多线程有了解过吗?两个线程同时对一个long类型的变量进行读写操作,会有线程安全问题吗?有,那么你有哪些解决方式?我说的用synchronized对读写的方法加锁,然后变量加volatile关键字修饰。当时没想到其它的加锁操作,以及Atomic包下的类,感觉面试官是想让我说出这些,然后再去详细问,但是我没说出来,没有后续了,我模糊的想起CopyOnWrite以及ThreadLocal,但是不确定……。
- wait和sleep的区别?(我回答了sleep是Thread类里的方法,调用之后线程睡眠一定的时间,但是线程所占有的资源不被释放,而wait是Object类里的,调用wait之后,线程释放所占有的资源然后进入对象的锁等待池等待被唤醒),面试官问还有呢?(我只想得出来这么多了……)
- 数据库用的什么数据库?在学校学的SQL SERVER,项目中用的比较多的是MySQL,那你说一下MySQL索引的实现方式有哪些?我说的B树,B+树,Hash表。然后面试官让你说下它们各自的优缺点,以及特性。
- 排序有了解过吗?十大排序都有了解过,那你说一下快排的思想(分而治之,然后说了快排的流程)
- 那我们今天就到这里,谢谢。面试官我有个小请求,能够对我刚才的面试做一个评价吗?Java基础还有些薄弱,多态和重载可以去深入了解下,多线程方面也是,除此之外没有问到的IO等都要去深入了解。
凉凉,这些天都在刷算法题,Java基础放松了些…… 秋招好难啊……
#面经##校招##Java工程师#