字节 一面 凉
项目
- 问到了反爬虫
基础知识提问
- mysql如何保证数据一致性?我答了事务的隔离级别,读已提交和可重复度
- synchronize的关键字的原理?我讲了一下可重入锁,偏向锁->轻量级锁,自旋锁->重量级锁的升级过程。
- 问synchronized修饰了以后是不是并发安全的?我说是
查了一下,我觉得面试官的问题应该是在问高并发相关的问题,但我对高并发还不了解。所以答了是。synchronized只对单个jvm生效,真实使用中,考虑到高并发的情况,不可能只部署在单个系统上 - concurrentHashMap是不是线程安全的?是,他就是加了个synchronize的
- dubbo框架了解过吗? 我说我还不太了解分布式的中间件和框架。
编程
- 手撕力扣1143. 最长公共子序列,动态转移方程写错了,没想出来
- 手撕剑指 Offer 39. 数组中出现次数超过一半的数字
我只想到了排序和哈希表的做法,面试官说排序时间复杂度为nlogn,哈希表空间复杂度为n,有没有时间复杂度更低,且空间复杂度为0(1)的做法?不了解。查了一下,应该使用摩尔投票法获得众数。其时间复杂度为O(n),空间复杂度为O(1)
一共面了45分钟,有20多分钟浪费在第一道编程题,面试官小姐姐非常耐心温柔,而且一眼看出了我的代码的问题,并让我改正,但是我实在是太菜了,最后面试官决定让我放弃这道题,让我下来再想想。
因为发烧了,所以面试的时候一直出汗,有点紧张。下来以后第一道题看了答案秒会,哎……
总结
面试官人很好。目前知识面不够广,分布式也还没有触及。动态规划写的不熟练。面试官是根据简历问问题的,所以简历需要重新好好写一写。