[面试] 0. 导航-初中级后端工程师面试题目总结(提供参考答案)

前言

    这篇文章是个人对后端工程师的面试复习点总结,不求面面俱到,只求发挥实效。你也可将你面试时遇到的值得记录下来的问题发给我,丰富这篇文章,感谢~

  1. 本文仅包括目录,查看答案请点击超链接。
  2. 每个题目的答案我都会上传文章供各位参考,但完成需要一点时间,请耐心等待。
  3. 如出现任何错误之处,请指出~

注明

    本文中的题目多参考于网络,如果侵犯了您的权利或您有注明来源的要求,请给我留言,谢谢。

    答案均为个人整理发布,转载请注明来源:https://blog.csdn.net/sc_lilei/article/details/87098343

正文

    1、语言基础方面 

          Python基础已发布

          Golang:着重于(接口,chan,sync.map ,并行并发区别,协程,锁)

    2、数据库

          Mysql(已发布)

            1、谈谈mysql字符集和排序规则? 

            2、varchar与char的区别是什么?大小限制?utf8字符集下varchar较多能存多少个字符

            3、primary key和unique key区别?

            4、外键有什么用,是否该用外键?外键一定需要索引吗?

            5、myisam与innodb的区别?innodb的两阶段锁定协议是什么情况?

            6、索引有什么用,大致原理是什么?设计索引有什么注意点?

            7、如何存储IPv4?-- 使用int配合自带函数inet_aton和inet_ntoa

            8、哪些情况索引不生效?

            9、什么是最左匹配原则?

            10、说说悲观锁和乐观锁

            11、关于join

            12、MySQL为什么使用B+树?

            13、什么是幻读?什么情况会发生?怎么解决呢?

         Mongo(已发布)

           1、mongo的适用场景和不适用的场景

           2、mongo的简单查询、聚合查询使用

           3、如何执行事务/加锁?

           4、mongodb中的(namespace)是什么?

         Redis(已发布)

           1、什么场景用redis,为什么mysql不适合?

           2、谈谈redis的事务?用事务模拟原子+1操作?原子操作还有其它解决方案吗?

           3、redis内存满了会怎么样?

           4、和memcache的区别?

           5、为什么是单线程的?

           6、redis的aof太大如何优化

 

   3、分布式相关

           1、什么是分布式,为什么需要分布式? 和集群的区别是什么?

           2、谈谈分布式通信协议

           3、说说分布式事务(产生原因,业务背景,解决方案)

           4、如何解决最终一致性问题?

           5、分布式锁有哪些方案,如何选择?

           6、扩展:主流的负载均衡算法原理了解一下

 

   4、网络协议相关(已发布)

           1. GET和POST区别,HTTP状态码了解哪些?

           2. Session和Cookie的区别?Session如何管理?

           3. HTTPS的解释?

           4. 简述HTTPS密钥协商过程

           5. 简述跨域产生背景以及常见的解决方案

           6. 解释一下socket长连接

           7. 谈谈select和epoll

           8. TCP与UDP区别;简述三次握手和四次挥手过程

           9. time_wait过多的原因?

         10. close wait什么出现?

         11. 一个http请求由哪几部分组成?

         12. 谈谈http长连接和短连接

 

   5、操作系统相关(已发布)

           1、进程与线程的区别(资源、调度、开销、通信 4个方面来对比)?

           2、进程间通信(对应python、golang如何实现的)

           3、线程间通信(对应python、golang(协程)如何通信的)

           4、Linux常用的监控资源使用率的命令?(top,free)

           5、Linux其他常用命令

           6、了解协程么,轻量体现在哪儿?

           7、结合OSI七层模型解释一下数据从一台计算机到另一台计算机的过程?

           8、描述一下Socket?

   6、其他

          1、谈谈乐观锁与悲观锁

          2、并发的解释、产生原因、几种实现方式、实现并发时的同步

          3、websocket协议的解释,应用场景

          4、NIO的原理和,连接切换方式

          5、线程池的实现原理

          6、消息队列同时消费问题

 

   7、非理论题目

          1、遍历一个内部位置的文件夹有几种方式?

          2、手写快排,快排的平均时间复杂度是多少,最坏情况如何优化?

          3、【手写】:一个列表A=[A1,A2,…,An],要求把列表中所有的组合情况打印出来

          4、【手写】:用一行python写出1+2+3+…+10**8  答案:s = sum([x for x in range(1,10**8+1)])

          5、【手写】:用递归方式判断回文

          6、【手写】LFU,要求get和put都为O(1)

          7、两支不均匀香,烧完每根都只需1小时,如何测出15分钟?

          8、你会怎样设计秒杀场景的后台?秒杀时如果机器资源有限怎么办呢(别看答案,先自己尝试下)?

          9、【上机】用两个线程分别打印0-100之间的奇偶数

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值