• A+

20190228水滴筹面试经历

笔试

1.下面什么情形,执行foo()方法一定会导致StackOverflowError?

A foo(){for(int i=0;i<2000000000;i++){i-=1;}}

B foo(){List<Integer> list=new ArrayList<>();for(int i=0;i<2000000000;i++){list.add(i);}}

C foo(){ ... bar(); ... }  bar(){ ... foo(); ... }

D foo(){ ... foo() ... }

2.Servlet线程安全吗?补充:什么场景下安全?什么场景下不安全?

3.谈谈Java的垃圾回收机制,并描述一次JVM FullGC产生的过程

4.用Java代码编写两种不同的单例模式

5.定义一个函数体如下:public static reverse(int[] array,int begin,int end);reverse方法的作用是将array数组中,从begin下标到end下标之间的元素反序一下,如一个数组初始值是【1,2,3,4,5,6】,begin为1,end为4,那么当调用了Reverse之后,array数组中的元素便依次成为【1,5,4,3,2,6】,其中从array[1]到array[4]之前的元素被反序了,请使用Java语言实现,但是请不要使用JDK中已经有的方法

6.采用Java多线程技术(例如wait和notify),设计实现一个符合生产者和消费者问题的程序,对一个对象(枪膛)进行操作,其最大容量是20颗子弹。生产者线程是一个压入线程,它不断向枪膛压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。

7.给定a、b两个文件,各存放50亿个URL,每个URL各占64字节,内存限制是4G,如何统计同时存在于a、b文件中的URL的数量?

注:不限实现语言(伪代码也可),请简述解决方案和思路(最好写清应该注意的性能问题),并写出实现关键算法的方法

8.杯子、碟子、碗、锅,请指出这四样东西哪一样与其它三样存在本质不同,并详细阐述原因。(答案当然不止一种,其中并没有正确与错误的分别,如果你有多种答案,不妨一并写出,并分别阐述原因)

 

一面

1.自我介绍

2.做过的项目的架构

3.SpringBoot和SpringMVC区别

4.SpringBoot运行原理,有什么好处和劣势

5.怎么理解SpringBoot是微服务的框架

6.你有做过Docker容器化的经验吗

7.K8S

8.Redis原理

9.Redis怎么保证数据的一致性,一个master多个slave,各个slave怎么保证数据一致,master挂掉后怎么处理数据,Redis有什么机制知道哪个实例挂掉了

10.RPC框架有哪些,除了dubbo,还有哪些

11.Elasticsearch原理是什么

12.你为什么会在外面看机会

13.你有什么问题问我吗

 

二面

1.git上写过的开源项目

2.看过什么项目源码

3.Elasticsearch多个节点之间怎么协调,脑裂问题

4.Elasticsearch索引是怎么建的

5.Java 实现热部署实现方法

6.Java原生的类加载器有哪些

7.最有成就感的项目

8.搜索引擎优化做了哪些工作

9.Elasticsearch优化的方法

10.SpringBoot中@Configuration是怎么实现的,SpringBoot starter机制是怎么实现

11.Java的多线程和操作系统的多线程有什么区别

12.操作系统里线程和进程有什么区别,线程和CPU是怎么关联的

13.JIMDB与Redis有什么不同

14.Redis中索引是怎么实现的

15.数据库里为什么用BTree做索引,不用别的

16.你在哪方面有深入的熟悉过么

17.Spring Bean的生命周期

18.BeanFactory和ApplicationContext有什么区别

19.一个应用里面有几个ApplicationContext

20.Java中堆内存和栈内存有什么区别,为什么对象不能放在栈里面

21.你自己对自己的未来规划是怎样的


注意:本文归作者所有,未经作者允许,不得转载
所属分类:博客

全部评论: 0

    我有话说:
    ×