基本功:
底层知识:看过哪些底层 这是高等面试官经常问的一句话;面试前需要看下然后能给跟面试官聊明白了,知识点要丰富,否则聊几句就结束了,这样的话面试官还会追问你还看过哪些底层,http请求的生命周期 Action和Result的执行流程最好多了解下这样好聊
中间件:
缓存必问(高并发的必杀技):
主要围绕穿透和雪崩(为啥没有击穿 是因为这两个词好记好念,不过这俩会了击穿也肯定都会了),要说出击穿后带来的危害,要有解决问题的思路,最好是写代码实践一下,其中有个问题点就是穿透之后锁要加在哪个位置合理,聊到锁这了 那分布式锁或者死锁肯定是下一个要追问的问题,还有SQL数据库的锁,还有就是多路复用要整明白。
消息中间件:各种MQ的实践,但是问的比较多的肯定是公司在用的,比如RabbitMQ和kafka(都是当下比较流行的) 涉及到MQ的基本会问数据的一致性保证问题,kafka的线程0拷贝
Consul和Ocelot polly jenkins kong Dapr jrpc等排最后因为这属于架构方面的聊的好的话是加分项,但是也可能被否因为面试官的观点是这些是架构层面的。但是nginx kestrel需要了解因为.net 毕竟使用iis部署,但是netcore在linux下用又不用iis了所以这肯定是考点; 有的时候可能jenkins(CICD)会问那就设计到相关的配置和私服仓库等再往下聊可能就聊到docker了,聊的好的就聊到灰度和滚动发布了。
代码基础
异步多线程必问:Await Async Task Thread 线程池 基本都聊差别和优缺点以及他们的API 和使用场景
装箱拆箱等 以及性能瓶颈和优化
定位问题肯定也是比问的问题之一:dump文件拆解分析主要针对高cpu和内存泄露
代码进阶:设计模式也是必问的问题 ,最关键的是 几个相同设计模式之间的区别然后面试官会问哪个东西使用了你们刚聊的设计模式,或者你写的功能哪个地方最适合什么设计模式;
大数据 高并发 这俩面试官也喜欢问:
比如ES mongodb Tidb 卡森抓(单词忘了怎么写了 写个中文吧)等NOSql的优缺点对比;这里有个重要问题是es的分页,既然设计到大数据了日志或者日志组件等必问,数据的存储索引优化,老工程师肯定会问分库分表(横向,纵向)
数据结构也是面试官喜欢问的问题;比如数组 hash二叉树线性表等
架构场景:微服务或者分布式等还有代码架构比如DDD等面试官肯定会问用过或者写过哪些代码架构,
优缺点肯定要说明白 说不明白的就别说出来最好;
一般问了微服务的可能会问云原生或者云计算;
鉴权授权也是面试官喜欢问的问题
最后一个最厉害的问题就是GC的相关问题了和防止内存泄露等这肯定是程序员经常忽略的点;