滴滴 后台开发岗社招面经
电话面
1.自我介绍
2.线程池有哪几种
3.基本数据类型,占的大小位
4.==和 equals
5.接口和抽象类区别
6.创建线程的方式、启动方式
7.execute 和 submit 的区别
8.runnable 和 callable 区别
9.Linux 中,awk、find、grep -v、grep -c
10.hashmap 底层
11.concurrentHashMap 底层
12.left join 和 right join
13.写一个 controller(post,json)
14.找到未排序数组中缺失的数字
15.单例模式
16.long 和 double 都是 64 位,
17.double 也能表示的更多,那为什么还需要 long 呢(因
为double 不连续)
18.说一下 java 类的三大特性:封装、继承、多态
20.jvm 内存管理
21.java 中抽象类和接口有什么区别?一个类可以实现多个接口吗
22.两个乱序数组求交集(哈希)
23.快排
24.说一下
25.集合类的实现
26.红黑树:平衡二叉排序树
27.ArrayList 怎么扩容了解吗
28.HashMap 和 HashSet 怎么实现的
算法题:
实现一下LRU 缓存机制
二面
介绍一下数据库redis 和 mysql 有哪些不同
怎么保证数据一致性?
mysql 引擎介绍一下?myisam 和 InnoDB 的区别
如何数据库调优?
联合索引、覆盖索引介绍一下?
网络模型7 层
tcp 三次握手讲一下,为什么不 2 次呢?
四次挥手说一下,为什么是4 次?
负载均衡了解么?
讲一下Ngnix 的算法
算法题:
递归方式对数组进行排序(果断选择快排,有逼格+太熟悉了)
反转链表
没怎么需要面试官提醒,偶尔的错误也通过debug 调出来了,(本地 IDE 共享屏
幕)
整体聊天比较顺畅,问题都比较简单,没问什么具体场景题,基本都答出来了
面试前专门攻了一下网络,果然问了很多网络知识
这应该是我面试的最简单的一次了