斗鱼研发面经
斗鱼研发面经
斗鱼武汉
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 有什么问题

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
京东&美团研发面经
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82702471 京东&美团研发面经 京东Java工程师 美团点评 后台开发工程师 1 京东提前批Java开发 电话面试 本来想等面完再发个面经,等了半个月了没等到。 一面: 0 自我介绍,讲一下项目中的多线程实现 1 Java的线程池的参数,拒绝策略,阻塞队列等实现和使用 2 fixethreadpool使用的是什么阻塞队列,如果使用arrayblockingqueue或者linkedblockingqueue会有什么问题。 3 ArrayList和linkedlist有什么区别,扩容呢 4 hashmap,hashtable,concurrenthashmap1.7和1.8选一个说一下。 5 jdk1.8针对hashmap使用红黑树优化目的是什么,红黑树的结构说一下。 红黑树的特性: (1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL...
- 下一篇
高级开发必须理解的Java中SPI机制
本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参考。 一、SPI是什么 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 整体机制图如下: Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。 系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。 一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。 Java SPI就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。所以SPI的核心思想就是解耦。 二、使用场景 概括地说,适用于:调用者根据实际使用需要,启用、扩展、或者替换框架的实现策略 比较常见的例子: 数据库驱动...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池