总时长2h20min 笔试面试各一半
笔试做了前两道(2/4):
1.把父串里在子串中出现的字符全部删除。要求复杂度O(n)。把子串建立个HASHMAP就好,然后面试官以这个程序让我聊了HASHMAP。
2.一个简单地括号匹配,用栈做很常见。
3.一个矩阵返还第K小的数字。
4.自定义一个实现PUT和GET的LRU缓存数据结构。
面试:
- HASHMAP的扩容机制,红黑树的相关原理实现。
- HASHMAP,HASHTABLE,CURRENTHASHMAP的区别,为什么HASHTABLE是线程安全的,你会怎么去实现一个线程安全的数据结构。
- LinkedHASHMAP的使用场景和原理。
- 进程和线程的关系。怎么创建一个进程,Ubuntu查看一个进程的端口应该怎么看。
- 进程没有空间创建时应该怎么办。
- 讲一下类加载。
- 讲一下数据库里的事务,你会怎么去实现一个事务,你刚聊到了原子性,那么事务的原子性是怎么实现的。
- REEDIS如何保证和数据库的一致性。
- 那你刚才提到了重试机制,具体的重试次数该怎么规定,队列规模参数怎么规定?
- 网站访问量你会用哪个数据结构来记录(这里开始大量的用场景提问),我回答的STRING,接着问如果A访问了B网站,那么你的KV怎么设置。
- 布隆过滤器怎么实现更高效。
- 缓存穿透和缓存雪崩的区别,缓存雪崩该怎么解决,如何解决的同时还能保证一致性。
- 讲一下索引,为什么使用B+TREE会更高效,为什么不用MaP结构查询难道不会比树更快么?
- 幻读是什么?发生幻读该怎么办?为什么MYSQL隔离级别不需要幻读,那这时发生了幻读又该怎么办?
- 表级锁和行级锁的区别,乐观锁和悲观锁的区别,行级锁是哪种锁?为什么要设置这种锁。
- GET和POST的区别,为什么我POST也能起到GET的作用却不用POST做查询。
- HTTP和HTTPS的区别?
- HTTPS的具体实施过程?DNS那些就不要讲了。
- 公钥和私钥是怎么确立的,加密用公钥还是秘钥,解秘呢?为什么?
- HTTP1.1和HTTP1.1的差别?那你了解HTTP/2么?
- 讲一下负载均衡。这里和刚才缓存负载那里你有没有什么想法?是否看到其中的共通性?
总之这次真的很多细节自己没把握住,而且面试官很多区分度高的问题没有答出来,后面精神逐渐涣散有些记不清楚,网络和数据库部分贼多,场景题居多,希望对大家有帮助,早日上岸!
全部评论
(8) 回帖