哔哩哔哩 Java实习 二面面经
整体感受是,二面比较偏项目,设计,场景类,(60min就问了4个八股,哈哈),跟一面就截然不同了。。。
自我介绍,对我介绍的内容比较感兴趣(加入学生科技团队),然后先聊了会天
【项目】
然后让我介绍一个对你而言有挑战性的项目
然后就顺着这个项目,问了很多细节,怎么实现的?
其中涉及到多级评论
让我手写sql, 你怎么实现多级评论的sql语句的,然后对我进行疯狂鞭打。。。
然后又让写一个sql,查出数据库中每一个父评论下面有多少个子评论, (group by)语法有点忘了。。
然后又问道多级缓存,本地缓存(mybatis) + 分布式缓存 (Redis),
为什么这么设计?
能解决哪些问题?
为什么能解决缓存雪崩?
redis什么情况下会没有数据?我说 过期了就没数据了撒?或者宕机
然后问为什么key会大面积失效?我说redis内存有限嘛。保证内存空间及时释放嘛
问我多级缓存的执行顺序,先走redis ,再走本地,最后走数据库??
然后又问你说redis内存有限,那本地呢? redis放在前面,本地缓存放在后面,既然本地内存是有限的,那用本地缓存兜底能兜多少??
然后又问我,多级缓存的顺序如果调整一下怎么样?
【第一个八股】redis数据结构有哪些??你用过哪些??项目中怎么用的?
为什么统计播放次数要用hash??为什么不用简单的字符串??
点赞次数怎么更新的?
有想过点赞次数的准确性吗?误差之类的?
导致点赞次数误差的情况??
我说并发 i++ ,说道一半才发现不对,redis不是单线程的吗??。。。
然后面试官说,那是什么情况? 我说宕机?
然后又问除了宕机呢?还有什么情况?
我说主从,数据不一致,但是最终会一致?
面试官继续问,还有呢?(不知道了。。)
【第二个八股】然后问持久化? 总算来了道八股了。。 rdb ,aof ,aof重写,aof_buf ,双缓存区保证数据一致性,反正巴拉巴拉拖时间
【场景题】
10个桶,1000个球,1000个球怎么分配到10个桶里,自己决定,放好了以后不能改,然后我给你一个数字,你能不能从10个桶里面找出加起来等于我给定数字的桶?
比如给你数字15,你能不能找出对应的桶? 不能给出理由??
用bitmap 就好了
1 1 1 1 1 1 1 1 1 1 依次放 1 2 4 8 16 32 64 128 256 512
面试官说ok。。
【算法】
然后算法十进制转二进制,感觉面试官是根据上面那个场景题现成出的
也不晓得对不对,哈哈
public static String HEX_TO_BIN(int num) {
StringBuilder sb = new StringBuilder();
while (num != 0) {
int bit = num % 2;
sb.append(bit);
num = num/2;
}
return sb.reverse().toString();
} 然后面试官说干嘛reverse,我说辗转相除法,最后统计的时候不是从下往上哒,所以翻转一下, 面试官说,能不能自己写一个翻转的函数啊?
我说啊这,好吧。。
然后又让写了个翻转字符串的函数
public static String reverse(String str) {
int left = 0, right = str.length() - 1;
char[] arr = str.toCharArray();
while (left < right) {
char temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
return new String(arr);
} 【第三个八股】 输入url到浏览器,发送了什么、? 怎么解析url请求的???
然后又问了一会项目
【项目】
登录??你怎么验证对方的身份的?怎么知道登录的是你,不是他人? 我说token
能具体讲一下流程吗? cookie和session?
为什么客户端访问的时候要带上cookie?不带行不行??
为什么不带cookie? 服务端负担加重?
带了cookie有没有什么风险?? 用户数据泄露?
【第四个八股】我说用HTTPS哇?HTTPS怎么保证的??对称密钥和非对称密钥?
【闲聊】
介绍一下你眼中的B站?? 当然是我在B站上大学咯
你通过实习想获得什么??
最快多久能过来实习??实习多久?实习到12月可以接受吗??

查看14道真题和解析