哔哩哔哩(上海)开发实习生(Java方向)面试复盘和答案总结

昨天,我面试了B站的Java开发实习生,面试的时间长达40分钟,总的来说,还是很失败的,很多问题也是回答不上来,甚至我写在简历上的技术我都想不起来,可能是我已经拿到实习offer的原因,不怎么想努力了,也可能是我之前没有大公司的面试经验,努力的方向有些问题。
不过,我现在回想起来,问的问题其实都是比较基础的,只是我平时没有往深的学习,比如HashMap、计算机网络的HTTP协议和HTTPS的区别这样的问题,其实从本质上来说并不复杂。
不过这次失败的经验也是值得我去慢慢反思的,希望以后自己可以更加注重基础,一个知识点还是要往深的学。

一、面试问题汇总

1、自我介绍
2、Java基础相关

① 讲一下你了解的集合类
② HashMap是怎么实现的,里面的数据结构是怎么样的(依赖了什么数据结构来实现)?
③ 因为HashMap里面可以放多个key,那么多个key是怎么存储的呢?
④ HashMap如果存入的值都在一个key里面时,那放进去所有的key都在一个链表里面的吗(在HashMap扩容之前,并且在没有达到同一个key下链表长度超过8的界限之前)?
⑤ HashMap是线程安全的吗?为什么不安全?
⑥ ConcurrentHashMap是怎么做到兼顾性能和线程安全的?
⑦ Java的锁(synchronized关键字)有了解过吗?
⑧ 了解过synchronized在Java里面一个锁膨胀(锁升级)的过程吗?
⑨ Java里面可重用锁的一个类有了解过吗?
⑩ 了解过GC(Java的垃圾回收算法)相关的算法吗?
3、数据结构相关
① 讲一下你熟悉那些数据结构?
② 如果你要做一个索引,需要用什么数据结构比较合适?
③ 什么样的二叉树可以支持排序?
④ 红黑树有什么特点?
⑤ 有了解过MySQL里面关于索引的实现吗?
⑥ 叶子结点和叶子结点之间有什么关系(如果要做MySQL的范围查询的话)?
⑦ B+树是如何遍历数据的呢?
4、计算机网络相关
① HTTP和HTTPS的区别?
② HTTPS是如何提提高安全性的,它的工作原理是什么呢?
③ TCP和UDP有什么区别?
④ TCP每次发送数据包都需要三报文握手吗?
⑤ TCP如果发送的一次数据流里面有两个数据(客户端给服务器发送数据的时候,一个数据流里面有多个数据包的数据),这种情况如何处理?
5、JVM相关
① 讲一下JVM的内存模型?
6、JWT相关
① 什么是JWT?
② 给前端下发的JWT凭证里面有什么东西?
③ 前端发过来的JWT Token信息如何判断它是有效(是否是真实的,不是伪造的)的呢?
④ JWT凭证和之前基于session的安全认证有什么区别呢?
⑤ 服务端如何验证Token里面的信息是否有效?
⑥ 如果需要让客户的登录失效(如果用户的账号被盗了,用户重新修改了密码,但是盗号的人还可以登录),应该怎么办?
七、算法相关
① 算法题:数组的全排序实现
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
② 排序算法你了解那些?
③ 快排是怎么实现的呢?
④ 快排和冒泡有什么区别?
八、问面试官问题

二、答案总结

这些问题还得好好思考如何回答,我慢慢以后慢慢补充这个博客,也希望大家看到这些问题并且会的话可以发到这个博客的评论区,我们一起讨论学习。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值