斗鱼研发面经

本文首发于微信公众号:程序员江湖

斗鱼武汉

Java开发工程师(大数据方向)

1

一周前斗鱼约了面试,公司就在学校旁边,于是过去面试,2点到5点半。

现场面试体验还不错,办公室挺拥挤的,面试比想象中要难。

先做了一套笔试题,然后三轮面试。

笔试:

1 基本数据类型和引用数据类型的区别

2 静态成员变量和非静态成员变量的区别

3 Java的接口,抽象类,和普通类的区别。

4 字节流和字符流有什么区别,分别用哪个接口

5 忘了

6 两个线程A,B。A要等待B运行完(或者A超时10秒)再运行

7 两个表A,B。A表有姓名,课程,得分,B表有课程,比重。

要求班里课程得分*比重总和在60-70,71-80,81-90,90-100的人所占全班的比例。

8 JS题

9 一个字符串,前半段反转,后半段也反转,然后输出。

10 一个无序数组,变成有序数组,并且删除重复数字

一面:

1 项目

2 为什么用chm

3 hashmap的线程安全问题

4 线程池结构,阻塞队列看过源码吗,array阻塞队列的原理,怎么实现的,这边的put答错了,事实上不用移动数组。

5 jmm内存模型了解过吗,说了工作内存和主内存,顺便说了volatile,不能保证线程安全。

6 spring说一下,老样子ioc和aop,问我bean为什么是单例的,是否线程安全,怎么让接口指定实现类。bean容器的实现原理,解析过程,问我这块是在哪里看的,我说博客。

7 hibenate的作用,原理,有什么问题。

8 mysql的SQL语句优化怎么做,有哪些情况用不到索引。怎么优化

9 redis的缓存穿透怎么解决,如果是无效请求怎么办。

10 消息队列了解么,主要有什么作用。

11 zk了解么。

12 写一个双重检查的double check,忘记写构造函数了,尴尬。

二面:

1 项目

2 MySQL建表实现目录树的结构,怎么做。

3 怎么查这个目录下的一级节点呢

4 把目录节点写成一个类,让我写一个遍历所有子节点的方法。

5 写一个hashmap的get和put方法,稍微写了一点点基本结构,我说后续太复杂了,他就没问了。

6 nginx做负载均衡,它管理的Tomcat服务器怎么管理session实现共享,我说使用数据库和缓存。

7 nginx单点故障怎么办,做集群,那么集群怎么让客户端知道要访问哪一个IP。我说让本地dns服务器来选择。

8 集合类的几个问题

9 docker和k8s说一下。

10 直播技术了解么。

三面:

1 平时怎么学习的

2 哪些书你印象深刻

3 实习的收获哪家公司更大一点

4 遇到困难怎么克服

5 新的技术怎么去学习

6 Java web的发展了解么,这些框架是怎么演变的,springboot呢,其中的区别呢。spring容器的原理,mvc容器的初始化,以及内部数据结构是什么样的。

7 docker和k8s怎么学习的,有什么好处。

8 平时还学了哪些技术,对未来发展怎么规划

9 有什么问题

▼更多精彩内容

今日头条研发面经

蚂蚁金服研发面经

百度研发面经整合版

拼多多&快手研发面经

美团&京东研发面经

本文首发于微信公众号【程序员江湖】

作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于2018 年秋招拿到 BAT 头条、网易、滴滴等 8 个大厂 offer

个人擅长领域 :自学编程、技术校园招聘、软件工程考研(关注公众号后回复”资料“即可领取 3T 免费技术学习资源)