网易测试开发内推批次一面面经
我:xxxxxxxxx
这里有纸,写一个用链表实现的hashmap吧
我:(开始写,想着是实现一个类似linkedhashmap的类,因为之前正好看过源码,开始写那几个关键实现方法)
写了几分钟,打断我,说:你用java写吧,python我看不太懂。还有,我不是要你实现一个java的hashmap,你先把链表的结构写出来吧。
我:链表的结构?(有点蒙)
面试官:就是链表的数据结构。
我:(当时想到的是写链表一个node的结构,就写了一个链表节点的结构,包含value,指针,最近写python较多,java确实比较吃力,然后把.next写成了->next,好像是c的写法)
面试官:你写的是数据结构吗?
我:(更蒙了)是。。的吧
面试官:你为什么有箭头?你会java吗?
我:(如实回答)python平时写的比较多,java写的比较粗糙。
面试官:你写的不是数据结构,链表不是这个。那你就给我实现一个node吧
我:。。。(自己不确定了)
面试官:我帮你写吧。不然后面没法问了,先写个类,(说了几个单词,然后。。最后写出来我发现还是我这个结构。)
我:。。。。。
面试官:你这样吧,感觉你完全不熟悉,你写个方法,插入一个节点到链表中,给你位置,和新节点
我:(之前写过python的原题,开始写,三个参数,(老链表头节点,待插节点,位置)。考虑了如果插在头节点的情况,加了个dummy节点指向head。写完给他看,他开始看,他发现for循环i终止条件不对(却是写错了),开始bbbbb,bbb没完。我一行行顺着他看的讲下去。每到一行就开始挑分号等问题。大概这样说了5分钟,由于出错太多,他总结了一句我看不懂你这个是啥。。。)
我说:那我重新整理写一遍吧。然后我重新写了一遍,这次把小细节好好注意了、
写完后他开始看,又是一个个单词顺过去,看了大概1分钟,来了句 ,算了,那我们先不讨论这个问题,我看你简历写的熟悉java,问你点简单的问题吧,java1·8有什么新的特性
我:lambda表达式,新的time包,hashmap底层红黑树实现,currenthashmap底层也有变化,把segment数组加上类似hashmap的底层实现,变成了cas操作加上sycronized。。。。
面试官:(急打断)cas操作解释一下
我:cas操作是原子操作,有一个预期值a,
面试官:(急打断)CAS不是的。(原话,我也没听清楚),那我问你,currenthashmap对比hashmap优势在哪里?(刚才我的CAS这里我可能应该先说cas操作的目的是什么,而不是一上来就讲cas的具体实现)
最后,面试官总结,我感觉你这个人很奇怪,有的东西了解的深,有的基础你又不会。你先去那边等吧。
然后挂了。其实我真没想到一面就挂。
总结:回忆起来,自己问题主要出在java基本语法是不熟悉,写数据结构和算法我都只有py总结,每次复习都只看py的代码,觉得就算写java也能写出个大概。碰到这样一个一个单词看的面试官就无能为力,出错很多。
第二,在问答题这种知识点上,确实像深入jvm虚拟机这种书,我没有看,这几个月估计也没空看。我都是以网上总结整理为主进行复习,在深度上欠缺一个level。
#网易##面经##内推##测试工程师#