2025.5.13 28min
体验很差,面试很糟糕,面试官也没开摄像头,秒挂
不会的问题反复拷问(提醒也想不出来,太菜了,达不到他想问的点上)
自我介绍
- 项目中密码怎么存储的
- 问加密算法(但面试官想问的不是对称和非对称加密)除了MD5加盐加密还有什么方法存密码
- 问我平时多个网站会使用同一个密码吗,平时密码会保存下来吗
- 如何校验密码
- 密码攻击方式有哪些
- 撞库攻击是什么,了解其他网站如何防范撞库攻击吗
检测异常登录行为,如地理位置变化、短时间内多次不同IP地址的尝试等,识别并拦截可疑活动
要求用户提供除了密码之外的第二种形式的身份验证,例如短信验证码、电子邮件确认码或者使用身份验证应用程序生成的一次性密码。 - 用户输入账号密码登录的具体流程
- 短信验证码登录,具体怎么实现的
- 去重怎么实现的(说Set不行,必须要说HashSet)
- 问HashSet的底层原理,冲突怎么解决
- HashMap怎么判断内容是相同的
- 哈希表链表转成红黑树要实现什么(绕很久都没答到点子上,最后说要实现Comparator接口)
- 说了一个场景求函数的调用次数,一段代码
static int count = 0; count ++
会有什么问题
会有线程安全问题,count++不是原子性的 - count ++ 字节码是怎么写的
- 不是线程安全的,那么函数调用1000次,count最后的结果比1000大还是小
- 说使用Synchronized还不行,要说synchronized(this),这边还说错了一点,面试官直接指出错误
- 不是线程安全的,解决方法是什么,追问了好几种
- AtomicInteger怎么实现的
AtomicInteger 是基于 volatile 和 CAS 实现的,底层依赖于 Unsafe 类。核心方法包括 getAndIncrement、compareAndSet 等。 - Get和Post请求的区别
- Get、Post请求报文的结构是什么,都有哪些参数
- 网页上打开pdf,有时是预览,有时是下载,怎么实现(说请求头中的某个参数,这么说也不行,要说出具体的字段)
Content-Disposition
为inline
表示直接在页面预览Content-Disposition
设置为attachmen
表示这是一个附件,由浏览器下载
反问(他是做安全登录之类的,还说知道的内容不够深入,其中几个问题还有明显错误)