开头
Netty 作为当前流行的 NIO 框架,在游戏、大数据通讯,云计算、物联网等领域都有广泛的应用,大家熟知的 Dubbo,底层用的就是 Netty。尤其在高性能 RPC 方面,Netty 更是必不可少。然而,想要将 Netty 真正掌握并精通难度却不小。一些学习者可能会遇到这些问题:
- 多线程编程、Socket 通信、TCP/IP 协议栈等知识掌握不扎实,学习过程比较吃力;
- 学习了不少理论知识,但真正跟具体项目结合在一起,解决实际问题时,又感觉比较棘手;
- 调用过程中遇到问题,不会定位,基本靠网上搜索,效率很低。
因此,如果没有一个好的学习方法,抓不住重点,只靠阅读源码,既耗时又很难吃透,很容易半途而废。
一面(一个小时左右)
- 算法:写冒泡排序,问如何优化,简单讲了快排和堆排序的原理
- 数据库:解释左连接
- 数据库第一第二第三范式,数据库死锁
- linux:怎么查看内存;怎么查看进程,ps命令一般在什么情况下使用。
- 什么是幂等操作?怎么解决幂等操作
- 乐观锁和分布式锁是什么,分别对应的场景是什么?
- 了解Web层开发?数据库索引了解么?聚簇索引,非聚簇索引?索引分类?
- 了解分布式?高可用?如何保证节点集群的同步?了解过么?
- redis的复制,持久化,分布式锁,队列支持
- 设计模式里面,单例模式?实现单例模式的双重校验。
二面(70分钟左右)
- 算法:实现一致性hash
- 如何保证数据库并发时没有问题?如先查询,后更改,或者同一时间用户查询用户分期单记逾期,同时用户执行还款,到底用户逾期成功吗,换的钱是多少?
- redis的数据量,如何做的备份恢复?
- 你们的股票行情数据怎么做正确性校验,加入db以及redis都出错了呢?
- mysql数据库的分库分表,有什么中间件?,主键策略是什么
- 大规模的数据量的分库分表,动态数据源怎么做查询(一个业务需要查询多个数据源的信息,怎么做到找到对应的数据源)?
- epoll函数怎么理解?epoll函数在别的哪些地方有用到?
- 如何解决redis的缓存穿透问题?怎么解决redis的缓存雪崩问题?
- Git用的多吗?git和SVN有什么区别?为什么要进行add、commit、push三步?
- linux怎么对CPU分配?
三面(一个小时)
- 一致性hash底层用的什么数据结构
- 手撕:有时间区间,判断昨天送外卖的峰值。(这个题做了快三十分钟,主要是外卖订单可能是前天的,昨天的或者今天的)
- web方面的应用多么,问了问HTTP?
- 智力题:一天24小时,时针和分针会重合几次?
- 介绍一下自己的项目。(疯狂怼项目了,连实验室的都问了,楼主搞通信的,面试官让我用白话给面试官讲了一些技术点。)
- 类似于百度地图,如何求A地到B地的路径,刚开始被面试官套路了,用各种分类讨论了半天,最后才发觉面试官想问的是有向图求最短路径?说了一下方法是什么?迪杰斯特拉算法作用,复杂度?
- 参加过社团吗?怎样能让合作更顺畅,遇到矛盾怎么处理?在沟通过程中出现过什么问题?怎么解决的?举一个具体的例子。
- 对未来职业发展方向的规划和想法 矛盾
- 有什么问题吗?
分享
这次面试我也做了一些总结,确实还有很多要学的东西。相关面试题也做了整理,可以分享给大家,了解一下面试真题,想进大厂的或者想跳槽的小伙伴不妨好好利用时间来学习。学习的脚步一定不能停止!
需要这份资料的朋友戳这里免费下载,整理出的内容大概如下:
Spring Cloud实战
Spring Boot实战
29)]
Spring Boot实战
[外链图片转存中…(img-7FEnmiGw-1620810805232)]
面试题整理(性能优化+微服务+并发编程+开源框架+分布式)