美文网首页Java面经
春招实习面经(华为云,阿里菜鸟,酷家乐,网易雷火,字节跳动)

春招实习面经(华为云,阿里菜鸟,酷家乐,网易雷火,字节跳动)

作者: 6b440373157d | 来源:发表于2019-04-28 08:55 被阅读11次

    经过一个多月的春招(实习),感觉今年真的是寒冬啊,菜鸟人多到爆炸,还碰到坑爹面试官也是心态爆炸,秋招还是换个阿里系的投吧,还是需要更努力地学习,这里回馈一下牛客的面经。

    华为

    技术面

    1.介绍一下自己

    2.介绍一下项目

    3.Spring的bean的生命周期

    4.数据结构的排序,然后问海量数据排序,讲了分治,然后问能不能用大数据组件或者大数据平台做海量数据排序,答了MapReduce的key自动排序

    5.计网的ARP协议

    6.java类变量的加载过程,父类静态变量和子类静态变量哪个先加载,int和long哪个先加载

    7.链表有环

    8.java元注解

    综合面

    1.问了哪里人,工作城市的意向

    2.聊了聊进去的项目(因为是项目实习生)

    3.实习时间

    阿里菜鸟

    一面

    1.介绍一下自己

    2.问项目,问了我Hadoop和Spark,然后问我Hadoop的MapReduce过程,然后问两个平台怎么选择,然后主要问我session那块,我的session共享是怎么做的,为什么这么做(面试官觉得我这么做没必要,跪),然后问session使用的过程,和cookie的关系

    3.问平衡二叉树,给了一些数据,让我讲出每一个插入后,树的状态。

    4.问我a=2,b=1,c=a+b底层具体是一个什么样的过程,答了java内存的分布,具体在哪个位置,比如常量池在方法区,然后栈存对常量的应用之类的。

    问底层呢我答内存拷贝,问有多少次内存拷贝,然后又问在多核cpu和多线程下,然后也是这种情况,cpu和底层又具体是什么样的过程,互相之间怎么影响,怎么不影响。

    5.问我HashMap是不是线程安全的,为什么不安全,会出现哪些问题,我讲了扩容出现环死循环,然后问我死循环cpu的状态是怎么样的,我答是100%,然后问我死循环其他线程能不能使用cpu,然后又问比如一个四核cpu占有率又是多少,cpu100%对整个服务器有什么影响。

    二面

    1.介绍一下自己

    2.问Redis为什么快,我答内存数据库、单线程、IO多路复用的epoll。

    3.SpringBoot 有什么好处,答一个好处就问是怎么实现这个好处的(这谁记这个,服)

    4.Spring的bean的加载过程,越具体越好,答了bean的生命周期,bean获取那一块的确不太熟没敢答。

    5.java1.8有什么了解

    6.平时看什么书

    酷家乐

    一面

    1.自我介绍一下

    2.进程和线程的区别

    3.问Redis,问了持久化,RDB和AOF,然后问了AOF的具体过程,问了AOF文件重写是怎么做的,问了Redis为什么单线程,Redis底层的数据结构,SDS

    4.mysql事务的隔离级别

    5.synchronized的锁的机制,自旋锁,可重入锁,偏向锁,轻量级锁、重量级锁,锁的膨胀过程

    6.一个long类型的数,让他整个位倒转,能不能只迭代8次完成

    7.一个数组一个数只有一个其他数两个,找到单独的那个数(LeetCode原题)

    8.一个数组有一个数超过一半,找到这个数(LeetCode原题)

    9.tcp三次握手四次挥手,为什么要三次和四次

    10.讲一讲java的内存模型

    代码面

    一道员工系统的实际题,设计数据结构,完成几个函数,入职,离职、调岗、指定上级、按级别遍历

    用类树的结构,做层次遍历就好了

    网易雷火

    一面

    1.自我介绍

    2.jvm的内存布局和gc过程

    3.jvm怎么调优,什么看gc的日志之类的

    3.mysql的事务、隔离级别

    4.mybatis防止sql注入怎么实现

    5.多线程方面,ThreadLocal,线程池

    6.分布式,分布式锁的实现

    7.HashMap,ConcurrentHashMap,说了ConcurrentHashMap的1.7和1.8的不同和具体实现

    字节跳动

    一面

    1.介绍一下自己,讲到了项目

    2.项目涉及缓存,所以问了蛮久基于业务方面缓存怎么做,比如缓存时间怎么设置,缓存哪部分数据,要取到很久之前的数据该怎么做之类的。(用Redis做的缓存)

    3.说一下Redis的使用场景

    4.说一下基于Redis实现的分布式锁,问的比较细,比如线程阻塞导致,导致锁过期,其他线程获取了锁然后前一个线程又释放了第二个线程的锁这种,还问了一个线程等待Redis的分布式锁,整体等待时间的是怎么样的(这个答得不太好,主要没理解他这么问的意图)

    5.说一下mysql的事务隔离级别,然后讲了四个隔离级别,以及对应产生的问题(脏读不可重复读幻读),以及InnoDB对应的2 3级别的实现,MVVC的实现,两个隔离级别产生Review的时间点和次数的区别,还有Next-Key Lock ,行锁加间隙锁。

    6.问我对多线程和JUC熟悉吗,我说了AQS、ReentrantLock、线程池、CountDownLatch、CyclicBarrier,然后问了我AQS是什么,介绍了AQS的一部分内容,和具体实现。

    7.问我对jvm的垃圾回收了解吗,说了从新生代到老年代的整体的过程,用什么垃圾回收算法,举了几个垃圾回收器的例子,说来空间分配担保和可能产生full gc的原因,反正尽可能细的去说自己知道的,越细越好。

    8.手撕算法,LeetCode原题 23. Merge k Sorted Lists,有一点点不一样就是要求后面没满k个的也转置。

    9.讲一讲一致性哈希

    二面

    1.介绍一下自己

    2.问了一个页面重定向的问题,问我一个页面自动跳转另一个页面怎么实现,我说了前端和后端都可以做跳转,然后问我各自的具体是怎么做的,这部分我没答好,没了解过这部分,然后问了301和302的区别,我只知道都是重定向,也没答好,(一个是临时的一个是永久的,我连这个都没答出来)

    3.问了mysql的引擎,索引,有哪些索引,然后问了主键索引和非主键索引的区别,讲了聚集索引,然后问了索引访问的过程,问了用聚集索引和不用的磁盘io访问次数的不同。

    4.问了java线程池的具体参数,问了最长空闲等待时间的具体情况,释放线程的过程,什么时候什么情况释放,释放时队列的情况是怎么样的。然后给了一个具体的场景分配服务器和设置线程池参数。单次任务的cpu时间是100ms,要达到一秒钟1000次任务量,服务器是4核8g,问要多少服务器,每个服务器具体的线程池参数配置是多少。

    5.问了一个大数据判重的题,只有一台机器,数据是int范围,给了3个思路,一个是hash切分大文件为小文件,对小文件用hashset去做判重,还有用BitSet,单机大概500mb内存可以解决,最后一个是用布隆过滤器解决,内存利用更小。 然后问我布隆过滤器的误差怎么解决,我说可以加大hash数量或者hash的范围,还有可以用多个独立的不同的布隆过滤器来解决。

    6.手撕算法,链表快排,用快排的思想实现对链表的数据结构的数据做快排。

    7.进程通信

    hr面

    1.介绍一下自己

    2.问了一下我本科和研究生的经历

    3.问平时日常一天是一个什么样的流程

    4.问我导师和实验室的情况

    5.问了我一个具体项目中分工,以及我主要做了哪些

    6.问我现在有哪些offer或者offer的意向,给了口头offer

    相关文章

      网友评论

        本文标题:春招实习面经(华为云,阿里菜鸟,酷家乐,网易雷火,字节跳动)

        本文链接:https://www.haomeiwen.com/subject/nsprnqtx.html