被很多人蹲的网易互娱二面面经

首先,我有一些话必须要说在前面。我是一条鱼,只有7秒的记忆,谢谢。
一面时间:4月17日,耗时1小时27分钟,二面时间:4月23日,耗时1小时10分钟,三面时间:如果有的话再来补充😂
一上来老规矩自我介绍,之后就问了我对于换语言怎么看,我当然是坐着看啊,不不不,当然是没问题啊,只要网易要我别说换语言了,换啥都行,之后就是一些问题,干货如下:
1.项目中最有成就感或者最有技术的一个,详细的说一下(涉及到项目就不能说太多了)
2.针对项目中mysql表数据量过大时查询为什么会变慢(数据量过大进行全表扫描的时候时间复杂度自然就高了,估计是没回答到面试官心中的点,然后引导到了文件上)
3.由上一个问题引导到数据库数据保存在本地的存储结构是什么样的,从这个角度谈谈为什么查询会慢(Innodb存储引擎下,表的存储文件分为两个,一个是存表的结构,一个是存表中的数据,至于为什么会变慢回答的还是文件量过大,查询自然就慢了)
4.之后又引导到磁盘上,从这个角度谈谈查询慢的原因(谈到了磁盘预读和磁盘读取时产生的时间,具体的回答的也不是很好)
5.之后引导到索引上,说一说索引为什么能快速定位到我们想要查询的数据(刚开始不知道,之后引导到了b+树上,就是利用节点上存储的索引范围去快速的查询)
6.Redis内存淘汰策略是怎么实现的(不会,本以为问的是有哪些,结果问我怎么实现的,当场懵了,之后我说到了LRU上)
7.如果让你去实现一个淘汰策略,你会使用什么数据结构(答了LinkedHashMap,但是好像不太对)
8.手写LRU算法(因为之前说了LRU算法,就让我手写了一个🤣,写的时候面试官一直催我,然后就没写完,就写了get和put方法)
public class MyLRU<K,V> {
    private final int MAX_CACHE_SIZE;
    private final float DEFAULT_LOAD_FACTOR = 0.75f;
    LinkedHashMap<K, V> map;

    public MyLRU(int cacheSize) {
        MAX_CACHE_SIZE = cacheSize;
        int capacity = (int) Math.ceil(MAX_CACHE_SIZE / DEFAULT_LOAD_FACTOR) + 1;
        map = new LinkedHashMap(capacity, DEFAULT_LOAD_FACTOR, true) {
            @Override
            protected boolean removeEldestEntry(Map.Entry eldest) {
                return size() > MAX_CACHE_SIZE;
            }
        };
    }

    public synchronized void put(K key, V value) {
        map.put(key, value);
    }

    public synchronized V get(K key) {
        return map.get(key);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        for (Map.Entry entry : map.entrySet()) {
            sb.append(String.format("%s:%s ", entry.getKey(), entry.getValue()));
        }
        return sb.toString();
    }
}


9.LRU算法中出现的LinkedHashMap实例在创建时,jvm进行了怎么样的操作(并不是很懂这么问题的点在哪里,但是面试官提到了类加载,就回答了加载的过程,然后引导到了jvm运行时数据区,最后说了对象的创建是存在堆上)
10.讲一下LinkedHashMap中put操作将key和value存到内存哪里(也不是很明白这个点,之后被引导到了HashMap put操作的过程上)
11.由于项目都是和运维相关的,问我怎么看待运维工作的(回答了运维工作就是要发现系统的问题,并且具备定位问题的能力,之后交给相应负责人去解决问题)
12.假设运维同事和你说系统无法访问了,你会怎么做(首先和同事沟通确定无法访问到底指的是什么,a.如果是项目网页打不开,先去ping一下服务器看看能否ping通,如果ping不同,那么就去服务器上看一下进程是否挂了,如果没挂那就进到tomcat里面去看日志定位具体错误位置;b.如果是系统中某一个页面无法访问,那就进入到相应页面通过F12查看信息,之后进入到代码中去确定是前端代码问题还是后端代码问题)
13.考察设计的能力,请设计一个方案,能够满足一次性,高效的将游戏的服务端发布到1000台手机上(直接懵住,以为是考察高并发知识,结果面试官说不是,就是纯设计题,然后没回答上来)
14.高并发的情况下,项目应该考虑哪些点(在上一题的基础上改成了高并发问题,回答了将服务器做成集群,并通过负载均衡的方式,将请求路由到不同服务器去处理,之后还回答了利用消息队列将多个请求缓存起来,让服务器一个一个消费)
15.技术知识都是怎么获得的(回答了买书,然后问了最近看的一本书)
最后的时候问了一下手上有没有别的offer,以及实习的起止时间等等,之后就进入到反问环节,暂时就记得这么多了。总的来说,网易面试给我的感觉就是不会去问一些很常见或者很书面的问题,都是一些很隐晦的问题,让你自己去挖掘藏在问题中的技术点,希望有三面吧,加油!
------------------------------
加更,4月24日,已拿网易offer,感谢网易,感谢牛客
#网易互娱##实习##Java#
全部评论
哈哈哈为鱼点赞👍
点赞 回复 分享
发布于 2020-04-23 21:45
顶帖,谢谢面经哈哈哈
点赞 回复 分享
发布于 2020-04-23 21:53
&amp;lz二面后有消息了吗?网易互娱是不是2轮技术+hr面
点赞 回复 分享
发布于 2020-04-24 15:25

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
评论
6
18
分享
牛客网
牛客企业服务