滴滴校招Java一二三面面经
一面 30+min
-
自我介绍
-
介绍一下实习,做了什么
-
mysql为什么最好别对长字符串的这种字段建索引?
-
四次挥手time-wait相关
-
redis主从同步怎么做的?
-
reids的hash的底层结构
-
跟他说了字典和Java的hashmap的一些区别,比如扩容的时候是渐进式扩容,然后还聊了为什么redis采用渐进式
-
让你设计一个类似git的可供多个用户同时操作的文档,你怎么设计
-
还有一些基础问题忘记了。。
-
算法题
先给了一道二叉树的,题目比较长,读完了之后大概就是leetcode的原题 二叉树给两个节点,找他们的最近公共祖先
这道题把主要的逻辑写出来了,但是面试官说跑case比较难,换一道简单的吧,我:???
又写了个快排,跑了个case 过了
二面 40+min
-
自我介绍
-
挑一个自己熟悉的项目说一说,遇到什么困难
-
说了项目里es的相关的一些问题,然后聊了怎么解决
-
他说对我的golang游戏实习比较感兴趣,问了golang和java的区别,觉得游戏开发和后端开发的区别
-
扯到实习项目的redis分布式锁,写了一下简单的伪代码
-
项目里锁的过期时间怎么设置呢,太长太短会出现什么问题,怎么解决
-
Java的锁? synchronized lock区别,原理
-
二叉平衡树分析一下
-
算法题 剑指offer原题:删除单链表中的重复节点,空间O(1)
三面 40+min
-
项目相关,引申了你如果要设计一个稳定的项目怎么设计
-
tcp,http,https相关
-
mysql主从怎么做的,binlog为什么要分两种格式
-
mysql索引问题,索引越多越好吗,为什么
-
回表问题
-
线程进程区别,父进程开一个socket,子进程把他关了,那么父进程的那个socket关了吗(答错了,这边应该是没关,那个socket上会有引用计数)
-
几种IO模型,BIO,NIO,多路复用等
-
大数据题:一个很大的文件,里面放的ipv4的地址,怎么存和怎么使得我查询一个ip是否存在里面效率最高?
答:ipv4 32位,跟int一样,用bitmap存,大概500M空间,查询效率O(1)
面试官:ok,思路很对,那你写一下吧
我:wtf??????
直接第一步就卡在ipv4怎么转成int了,然后跟他说能不能输入的就是ipv4的二进制然后再转,后续就是对这个代码的实际实现进行讨论
反正我最后也没写出来TAT
-
评价一下自己,优点缺点
-
有什么想问我的吗